2012-03-14 104 views
3

我的代碼在application.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) 
+1

在這裏出現一個肢體,但我會說'應用程序配置無效'。 – 2012-03-14 19:34:09

+0

需要更多信息。更多的代碼,更好的描述問題... – prolink007 2012-03-14 19:34:19

+0

把更多的氦氣放入飛艇? – Blundell 2012-03-14 19:38:47

回答

5

我也遇到過這個問題,我解決它。我會建議你確保你已經創建了一個應用程序與你的應用程序具有相同的應用程序的UrbanAirship應用程序。還有確保你的鑰匙和祕密是正確的。

IllegalArgumentException開發的AppKey和developmentAppSecret出錯時拋出。或者關鍵和祕密都是正確的,但是您的遠程Urban Airship測試應用程序有不同的應用程序包套件。

5

有一點需要注意的是,如果你使用的是airshipconfig.properties文件,並且把它放在同一個目錄級別的project.properties文件,市飛艇代碼將無法找到它,並呼籲AirshipConfigOptions.loadDefaultOptions(this)將返回空字符串值。

這可能會導致您看到的異常。

在這種情況下的解決方案是將airshipconfig.properties文件放到資產目錄中的項目。

1

如果您已經檢查了其他所有建議,並且仍然收到IllegalArgumentException,那麼當手機沒有任何關聯的Google帳戶綁定時,也會拋出此異常。

如果是這種情況,您應該可以登錄/關聯Google帳戶,然後您必須重新啓動手機。

我會建議在嘗試抓住包裹城市飛艇初始化電話,以阻止它在這種情況下磚應用程序!如果您使用錯誤報告,則明智地將其記錄爲已處理的異常,以便知道是否以及何時發生。