【发布时间】:2012-05-18 08:11:34
【问题描述】:
我正在尝试运行sample project for doing Android Push notifications with Urban Airship。我的程序似乎找不到这个AirshipConfigOptions 类。该项目构建良好,仅在运行时抛出此错误。
这是我的项目结构:
这是我得到的错误:
05-09 18:50:10.926: I/dalvikvm(2007): 找不到方法 com.urbanairship.AirshipConfigOptions.loadDefaultOptions,引用自方法 com.urbanairship.push.sample.MyApplication.onCreate 05-09 18:50:10.946: I/dalvikvm(2007): threadid=3: 对信号 3 做出反应 05-09 18:50:11.016: W/dalvikvm(2007): VFY: 无法解析静态方法 46: Lcom/urbanairship/AirshipConfigOptions;.loadDefaultOptions (Landroid/content/Context;)Lcom/urbanairship/AirshipConfigOptions; 05-09 18:50:11.016: D/dalvikvm(2007): VFY: 在 0x0003 处替换操作码 0x71 05-09 18:50:11.115: D/dalvikvm(2007): DexOpt: 无法在 Lcom/urbanairship/push/sample/MyApplication;.onCreate 的 0x0f 处选择直接调用 0x004a 05-09 18:50:11.115: D/AndroidRuntime(2007): 关闭虚拟机 05-09 18:50:11.115: W/dalvikvm(2007): threadid=1: 线程以未捕获的异常退出 (group=0x409c01f8) 05-09 18:50:11.125:E/AndroidRuntime(2007):致命异常:主要 05-09 18:50:11.125: E/AndroidRuntime(2007): java.lang.NoClassDefFoundError: com.urbanairship.AirshipConfigOptions 05-09 18:50:11.125: E/AndroidRuntime(2007): at com.urbanairship.push.sample.MyApplication.onCreate(MyApplication.java:46) 05-09 18:50:11.125: E/AndroidRuntime(2007): 在 android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:969) 05-09 18:50:11.125: E/AndroidRuntime(2007): 在 android.app.ActivityThread.handleBindApplication(ActivityThread.java:3954) 05-09 18:50:11.125: E/AndroidRuntime(2007): 在 android.app.ActivityThread.access$1300(ActivityThread.java:123) 05-09 18:50:11.125: E/AndroidRuntime(2007): 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1185) 05-09 18:50:11.125: E/AndroidRuntime(2007): 在 android.os.Handler.dispatchMessage(Handler.java:99) 05-09 18:50:11.125: E/AndroidRuntime(2007): 在 android.os.Looper.loop(Looper.java:137) 05-09 18:50:11.125: E/AndroidRuntime(2007): 在 android.app.ActivityThread.main(ActivityThread.java:4424) 05-09 18:50:11.125: E/AndroidRuntime(2007): 在 java.lang.reflect.Method.invokeNative(Native Method) 05-09 18:50:11.125: E/AndroidRuntime(2007): 在 java.lang.reflect.Method.invoke(Method.java:511) 05-09 18:50:11.125: E/AndroidRuntime(2007): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 05-09 18:50:11.125: E/AndroidRuntime(2007): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 05-09 18:50:11.125: E/AndroidRuntime(2007): at dalvik.system.NativeStart.main(Native Method) 05-09 18:50:11.215: E/dalvikvm(2007): 无法打开堆栈跟踪文件'/data/anr/traces.txt': 是一个目录 05-09 18:50:11.486: I/dalvikvm(2007): threadid=3: 对信号 3 做出反应 05-09 18:50:11.526: I/dalvikvm(2007): 将堆栈跟踪写入“/data/anr/traces.txt” 05-09 18:50:11.795: I/dalvikvm(2007): threadid=3: 对信号 3 做出反应 05-09 18:50:11.815: I/dalvikvm(2007): 将堆栈跟踪写入“/data/anr/traces.txt”
另外,我已经知道我需要将 JAR 放在“libs”文件夹中,而不是“lib”文件夹中,如 documented here。
更新 1:
我的 AndroidManifest.xml 中有以下活动:
<activity android:name="com.urbanairship.push.sample.MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.urbanairship.push.sample.PushPreferencesActivity" />
<activity android:name="com.urbanairship.push.sample.LocationActivity" />
这是我的 Java 构建路径的屏幕截图:
【问题讨论】:
标签: java android build push urbanairship.com