2012-03-14 6 views
3

내 코드가 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) 
+1

여기서 사지 말고 '응용 프로그램 구성이 잘못되었습니다'라고 말합니다. –

+0

자세한 정보가 필요합니다. 더 많은 코드, 문제의 더 나은 묘사 ... – prolink007

+0

비행선에 더 많은 헬륨을 넣으시겠습니까? – Blundell

답변

5

나는이 문제가 발생했고, 나는 그것을 해결. 신청서와 동일한 신청서 패키지를 사용하여 UrbanAirship에 신청서를 작성했음을 알려드립니다. 또한 키와 비밀번호가 올바른지 확인하십시오.

IllegalArgumentExceptiondevelopmentAppKey 및 developmentAppSecret이 잘못되었을 때 발생합니다. 또는 키와 암호는 정확하지만 원격 Urban Airship 테스트 응용 프로그램에는 다른 Applicaion 패키지 세트가 있습니다. 주의 할

5

한 가지는 당신이 airshipconfig.properties에게 파일을 사용하는 경우, 당신은의 도시 비행선 코드는 할 수 없을 것이다 project.properties 파일과 동일한 디렉토리 수준에서 배치한다는 것입니다 그것을 찾으면 AirshipConfigOptions.loadDefaultOptions (this)에 대한 호출은 빈 문자열 값을 반환합니다.

이로 인해 예외가 발생할 수 있습니다.

이 경우이 솔루션은 프로젝트의 자산 디렉토리에 airshipconfig.properties 파일을 배치하는 것입니다.

1

다른 제안을 모두 확인했지만 여전히 IllegalArgumentException이 발생하는 경우 휴대 전화에 연결된 Google 계정이없는 경우에도이 예외가 throw됩니다.

Google 계정에 로그인하거나 연결할 수 있어야합니다. 그러면 전화를 다시 시작해야합니다.

이 시나리오에서 앱을 브릭 킹하는 것을 멈추기 위해 Urban Airship 초기화 ​​호출을 try catch에 배치하는 것이 좋습니다. 오류보고를 사용하는 경우 처리 된 예외로 기록하여 문제가 발생했는지 여부를 알 수 있습니다.