【问题标题】:Urban Airship crashes at take off. Illegal Argument Exception城市飞艇在起飞时坠毁。非法参数异常
【发布时间】:2012-03-14 19:32:44
【问题描述】:

我在 Applicaion.onCreate 中的代码。该应用程序在UAirship.takeoff(this,options); 崩溃请帮助。

public class LiveVideoApplication extends Application {
    @Override
    public void onCreate() {

        super.onCreate();

        AirshipConfigOptions options = AirshipConfigOptions.loadDefaultOptions(this);

        // Optionally, customize your config at runtime:
        //
        options.inProduction = false;
        options.developmentAppKey = "key.. ";
        options.developmentAppSecret = "secret..";

        UAirship.takeOff(this, options);
        PushManager.shared().setIntentReceiver(IntentReceiver.class);
        Logger.logLevel = Log.VERBOSE;

        //use CustomPushNotificationBuilder to specify a custom layout
        CustomPushNotificationBuilder nb = new CustomPushNotificationBuilder();

        nb.statusBarIconDrawableId = R.drawable.icon_small;//custom status bar icon
//
        nb.layout = R.layout.notification;
        nb.layoutIconDrawableId = R.drawable.icon;//custom layout icon
        nb.layoutIconId = R.id.icon;
        nb.layoutSubjectId = R.id.subject;
        nb.layoutMessageId = R.id.message;

        // customize the sound played when a push is received
        nb.soundUri = Uri.parse("android.resource://"+this.getPackageName()+"/" +R.raw.cat);

        PushManager.shared().setNotificationBuilder(nb);
        PushManager.shared().setIntentReceiver(IntentReceiver.class);

    }
}

异常日志:

03-15 00:25:37.106: E/AndroidRuntime(2920): FATAL EXCEPTION: main
03-15 00:25:37.106: E/AndroidRuntime(2920): java.lang.RuntimeException: Unable to create application com.LiveVideoApplication: java.lang.IllegalArgumentException: Application configuration is invalid.
03-15 00:25:37.106: E/AndroidRuntime(2920):     at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3275)
03-15 00:25:37.106: E/AndroidRuntime(2920):     at android.app.ActivityThread.access$2200(ActivityThread.java:117)
03-15 00:25:37.106: E/AndroidRuntime(2920):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:969)
03-15 00:25:37.106: E/AndroidRuntime(2920):     at android.os.Handler.dispatchMessage(Handler.java:99)
03-15 00:25:37.106: E/AndroidRuntime(2920):     at android.os.Looper.loop(Looper.java:123)
03-15 00:25:37.106: E/AndroidRuntime(2920):     at android.app.ActivityThread.main(ActivityThread.java:3683)
03-15 00:25:37.106: E/AndroidRuntime(2920):     at java.lang.reflect.Method.invokeNative(Native Method)
03-15 00:25:37.106: E/AndroidRuntime(2920):     at java.lang.reflect.Method.invoke(Method.java:507)
03-15 00:25:37.106: E/AndroidRuntime(2920):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
03-15 00:25:37.106: E/AndroidRuntime(2920):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
03-15 00:25:37.106: E/AndroidRuntime(2920):     at dalvik.system.NativeStart.main(Native Method)
03-15 00:25:37.106: E/AndroidRuntime(2920): Caused by: java.lang.IllegalArgumentException: Application configuration is invalid.
03-15 00:25:37.106: E/AndroidRuntime(2920):     at com.urbanairship.UAirship.takeOff(Unknown Source)
03-15 00:25:37.106: E/AndroidRuntime(2920):     at com.LiveVideoApplication.onCreate(LiveVideoApplication.java:27)
03-15 00:25:37.106: E/AndroidRuntime(2920):     at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:969)
03-15 00:25:37.106: E/AndroidRuntime(2920):     at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3272)

【问题讨论】:

  • 在这里勉强出去,但我会说Application configuration is invalid
  • 需要更多信息。更多代码,更好地描述问题...
  • 往飞艇里放更多的氦气?

标签: android push-notification urbanairship.com


【解决方案1】:

我也遇到过这个问题,已经解决了。我会建议你确保你已经在 UrbanAirship 上创建了一个应用程序,它的应用程序包与你的应用程序具有相同的应用程序包。并且确保您的密钥和密码正确。

IllegalArgumentExceptiondevelopmentAppKey 和 developmentAppSecret 错误时抛出。 或者 key 和 secret 正确但您的远程 Urban Airship 测试应用程序具有不同的应用程序包集。

【讨论】:

    【解决方案2】:

    需要注意的一点是,如果您使用的是 airshipconfig.properties 文件,并且您将它放在与 project.properties 文件相同的目录级别,则Urban Airship 代码将无法找到它,并且对 AirshipConfigOptions.loadDefaultOptions(this) 的调用将返回空字符串值。

    这也可能导致您看到的异常。

    这种情况下的解决方案是将airshipconfig.properties文件放在你项目的assets目录下。

    【讨论】:

      【解决方案3】:

      如果您检查了所有其他建议,但仍然收到 IllegalArgumentException,则当手机没有关联任何关联的 Google 帐户时也会引发此异常。

      如果是这种情况,您应该能够登录/关联 Google 帐户,然后您必须重新启动手机。

      我建议将 Urban Airship 初始化调用包装在 try catch 中,以阻止它在这种情况下阻塞应用程序!如果您使用错误报告,明智的做法是将其记录为已处理的异常,以便了解它是否以及何时发生。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多