1

我正在尝试运行一个示例项目,用于使用 Urban Airship 进行 Android 推送通知。我的程序似乎找不到这个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: 无法在 0x0f 选择直接调用 0x004a Lcom/urbanairship/push/sample/MyApplication;.onCreate 05-09 18:50:11.115: D/AndroidRuntime(2007): 关闭 VM 05-09 18:50:11.115: W/dalvikvm(2007): threadid=1 :java.lang.NoClassDefFoundError:com.urbanairship.AirshipConfigOptions 05-09 18:50:11.125: E/AndroidRuntime(2007): 在 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方法) 05-09 18:50:11.125: E/AndroidRuntime(2007): at 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”文件夹中,如此所述。


更新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 构建路径的屏幕截图: 在此处输入图像描述

4

1 回答 1

1

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

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

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

于 2012-05-09T19:05:10.863 回答