【问题标题】:Can't get device token Android (Appcelerator)无法获取设备令牌 Android (Appcelerator)
【发布时间】:2014-07-25 09:28:42
【问题描述】:

我无法获得在 Android 中使用 ACS 推送通知所需的设备令牌。我搜索了所有相关问题,但没有得到答案。我按照指南Configuring push services for Android devicesSubscribing to push notifications 进行操作。

  • 应用类型:移动
  • Titanium SDK: Titanium 命令行界面,CLI 3.3.0 版,Titanium SDK 3.2.3.GA 版
  • 平台和版本: Android 4.3
  • 设备:小米红米1S
  • 主机操作系统: OSX 10
  • Titanium Studio: Titanium Studio,构建:3.3.0.201407100905 构建:jenkins-titanium-rcp-master-164(来源/主)

TiApp

<modules>
 <module platform="commonjs">ti.cloud</module>
        <module platform="iphone">ti.map</module>
        <module platform="android">ti.map</module>
        <module platform="android" version="2.2.0">ti.cloudpush</module>
</modules>

如果不设置 ti.cloudpush 2.2.0 版本,我会在日志中收到此错误

[ERROR] :  Found incompatible Titanium Modules:
[ERROR] :     id: ti.cloudpush   version: 3.3.0  platform: android   min sdk: undefined
[ERROR] Application Installer abnormal process termination. Process exit value was 1

相关代码

if (Ti.Platform.osname == "android") {
        var CloudPush = require('ti.cloudpush');
        CloudPush.retrieveDeviceToken({
            success : function deviceTokenSuccess(e) {
                // Use this device token with Ti.Cloud.PushNotifications calls
                // to subscribe and unsubscribe to push notification channels
                Alloy.Globals.tokenPush =   e.deviceToken;
                funciones.warn('Device Token: ' + e.deviceToken);
                funciones.suscribirCanal(param1,Alloy.Globals.tokenPush);
                //return token;
            },
            error : function deviceTokenError(e) {
                funciones.warn('Failed to register for push! ' + e.error);
            }
        });
        // These events monitor incoming push notifications
        CloudPush.addEventListener('callback', function(evt) {
            if(ostype === "android"){
                var alertString = JSON.parse(e.payload).android.alert;
                alert("Push recibido "+alertString);
            }


        });

    }

日志堆栈跟踪

[WARN] :   The module ti.cloudpush does not support the ABI: x86
[WARN] :   It only supports the following ABIs: armeabi, armeabi-v7a
[WARN] :   Your application will most likely encounter issues
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService: Failed to request device token.
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService: org.apache.http.conn.HttpHostConnectException: Connection to https://push-coordinator.cloud.appcelerator.com refused
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService:     at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:183)
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService:     at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService:     at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService:     at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService:     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService:     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService:     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService:     at com.appcelerator.cloud.push.CCPushService.requestForDeviceToken(CCPushService.java:247)
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService:     at com.appcelerator.cloud.push.CCPushService.getDeviceToken(CCPushService.java:82)
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService:     at com.appcelerator.cloud.push.CCPushService.access$000(CCPushService.java:28)
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService:     at com.appcelerator.cloud.push.CCPushService$1.run(CCPushService.java:172)
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService:     at java.lang.Thread.run(Thread.java:841)
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService: Caused by: java.net.ConnectException: failed to connect to /54.215.6.76 (port 443): connect failed: ETIMEDOUT (Connection timed out)
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService:     at libcore.io.IoBridge.connect(IoBridge.java:114)
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService:     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService:     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:460)
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService:     at java.net.Socket.connect(Socket.java:832)
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService:     at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:119)
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService:     at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:144)
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService:     ... 11 more
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService: Caused by: libcore.io.ErrnoException: connect failed: ETIMEDOUT (Connection timed out)
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService:     at libcore.io.Posix.connect(Native Method)
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService:     at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:85)
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService:     at libcore.io.IoBridge.connectErrno(IoBridge.java:127)
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService:     at libcore.io.IoBridge.connect(IoBridge.java:112)
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService:     ... 16 more
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService: Invalid token request
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService: org.apache.http.conn.HttpHostConnectException: Connection to https://push-coordinator.cloud.appcelerator.com refused
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService:     at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:183)
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService:     at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService:     at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService:     at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService:     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService:     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService:     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService:     at com.appcelerator.cloud.push.CCPushService.requestForDeviceToken(CCPushService.java:247)
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService:     at com.appcelerator.cloud.push.CCPushService.getDeviceToken(CCPushService.java:82)
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService:     at com.appcelerator.cloud.push.CCPushService.access$000(CCPushService.java:28)
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService:     at com.appcelerator.cloud.push.CCPushService$1.run(CCPushService.java:172)
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService:     at java.lang.Thread.run(Thread.java:841)
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService: Caused by: java.net.ConnectException: failed to connect to /54.215.6.76 (port 443): connect failed: ETIMEDOUT (Connection timed out)
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService:     at libcore.io.IoBridge.connect(IoBridge.java:114)
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService:     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService:     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:460)
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService:     at java.net.Socket.connect(Socket.java:832)
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService:     at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:119)
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService:     at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:144)
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService:     ... 11 more
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService: Caused by: libcore.io.ErrnoException: connect failed: ETIMEDOUT (Connection timed out)
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService:     at libcore.io.Posix.connect(Native Method)
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService:     at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:85)
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService:     at libcore.io.IoBridge.connectErrno(IoBridge.java:127)
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService:     at libcore.io.IoBridge.connect(IoBridge.java:112)
[ERROR] :  E/com.appcelerator.cloud.push.CCPushService:     ... 16 more
[ERROR] :  CloudpushModule: (Thread-3453) [3700,63022] Failed to retrieve device token! See stack trace below for more information.
[WARN] :   W/System.err: com.appcelerator.cloud.push.PushServiceException: Invalid token request
[WARN] :   W/System.err:    at com.appcelerator.cloud.push.CCPushService.getDeviceToken(CCPushService.java:123)
[WARN] :   W/System.err:    at com.appcelerator.cloud.push.CCPushService.access$000(CCPushService.java:28)
[WARN] :   W/System.err:    at com.appcelerator.cloud.push.CCPushService$1.run(CCPushService.java:172)
[WARN] :   W/System.err:    at java.lang.Thread.run(Thread.java:841)
[WARN] :   Failed to register for push! com.appcelerator.cloud.push.PushServiceException: Invalid token request

感谢您的帮助。提前致谢。

【问题讨论】:

    标签: android push-notification google-cloud-messaging appcelerator appcelerator-mobile


    【解决方案1】:

    您使用的版本不匹配

    您的 Ti CLI 是 SDK 3.3.0 您的 SDK 是 3.2.3.GA 在工作室中,您似乎使用的是 CI 版本,即 3.3.0.201407100905,其本质上是不稳定的

    我认为首先你需要确保你的 Ti 安装是正确的,我会首先将 SDK 重新安装到 3.3.0.GA

    然后使用:

    <module platform="android">ti.cloudpush</module>
    

    没有版本参数。如果此时它无法编译,它会告诉你一些事情。 IE。你的安装不好。强制使用较低的版本号只是强制使用旧的不兼容的库版本

    【讨论】:

    • 谢谢!几周前让它工作了,只是升级了 sdk 和所有模块。
    猜你喜欢
    • 1970-01-01
    • 2016-05-08
    • 1970-01-01
    • 2014-05-07
    • 1970-01-01
    • 2016-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多