【问题标题】:NoClassDefFoundError: com.urbanairship.AirshipConfigOptions (Android Push Development)NoClassDefFoundError: com.urbanairship.AirshipConfigOptions(Android 推送开发)
【发布时间】: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


    【解决方案1】:

    您确定在您的 android 清单文件中声明了所有内容吗?您不能只将库和活动添加到 src 然后运行这些东西,您还必须将每个新活动添加到清单中。

    从堆栈跟踪的外观来看,您似乎缺少飞艇的活动。

    您还应该检查您的构建属性并额外确保您的飞艇 jar 在构建顺序中。

    【讨论】:

    • @Ed Duderino,感谢您的评论。我刚刚更新了我的帖子,以包含我在项目中的构建路径和活动。所以不清楚这是否是问题所在。想法?
    • 好的,这肯定是您的构建问题。有时 eclipse 在导入项目时特别难以使用。我查看了您最初提供的链接中的说明,如果我是您,我会擦除您的位置,重新创建项目并严格按照说明进行操作,它们看起来很可靠。有时,您还必须在导入时将正确版本的 java 和 android 库添加到项目中。还要特别注意清单中关于服务和接收者声明的说明。
    猜你喜欢
    • 2015-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多