我正在尝试亚马逊设备消息API
我按照Amazon的建议使用导入添加了jar文件。当我部署到设备上时,我得到一个错误,
06-03 16:24:13.680: E/AndroidRuntime(11038): java.lang.NoClassDefFoundError: com.amazon.device.messaging.ADM
06-03 16:24:13.680: E/AndroidRuntime(11038): at com.myapp.MainActivity.onCreate(MainActivity.java:74)
06-03 16:24:13.680: E/AndroidRuntime(11038): at android.app.Activity.performCreate(Activity.java:4635)
06-03 16:24:13.680: E/AndroidRuntime(11038): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
06-03 16:24:13.680: E/AndroidRuntime(11038): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2031)
06-03 16:24:13.680: E/AndroidRuntime(11038): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2092)
06-03 16:24:13.680: E/AndroidRuntime(11038): at android.app.ActivityThread.access$600(ActivityThread.java:126)
06-03 16:24:13.680: E/AndroidRuntime(11038): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1172)
06-03 16:24:13.680: E/AndroidRuntime(11038): at android.os.Handler.dispatchMessage(Handler.java:99)
06-03 16:24:13.680: E/AndroidRuntime(11038): at android.os.Looper.loop(Looper.java:137)
06-03 16:24:13.680: E/AndroidRuntime(11038): at android.app.ActivityThread.main(ActivityThread.java:4586)
06-03 16:24:13.680: E/AndroidRuntime(11038): at java.lang.reflect.Method.invokeNative(Native Method)
06-03 16:24:13.680: E/AndroidRuntime(11038): at java.lang.reflect.Method.invoke(Method.java:511)
06-03 16:24:13.680: E/AndroidRuntime(11038): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
06-03 16:24:13.680: E/AndroidRuntime(11038): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
06-03 16:24:13.680: E/AndroidRuntime(11038): at dalvik.system.NativeStart.main(Native Method)我无法将jar文件添加到订单和导出中,因为它会导致存根错误,而且不是Amazon推荐的。
他们说,当应用程序安装时,它应该从设备中选择app,而不是搜索导致此问题的应用程序中的类文件。
我尝试从eclipse IDE构建,也尝试使用ANT手动构建。
发布于 2013-06-07 15:30:27
请检查您的manifeat文件,您可能已经在application标记之外放入了以下代码
<amazon:enable-feature
android:name="com.amazon.device.messaging"
android:required="true" />这些行必须在application标记内。
如果你正在使用Android Studio,那么你应该记住这一点
从以下内容更改:
dependencies {
compile files('libs/amazon-device-messaging-1.0.1.jar')
}要这样做:
dependencies {
provided files('libs/amazon-device-messaging-1.0.1.jar')
}谢谢!
发布于 2015-12-10 05:29:57
我只想补充说,这个错误的一个原因可能是您试图在非Kindle/Fire设备上设置ADM。我来到这里的假设是,所有的亚马逊商店应用程序都可以使用ADM,但不,只有亚马逊设备可以使用。
发布于 2017-03-01 05:50:07
清单中缺少以下行
<!-- Your application's API Key -->
<meta-data android:name="AmazonAPIKey" android:value=""/>
<!-- Declare your ADMMessageHandlerBase implementation as a service -->
<service android:name="com.cbsnews.ott.adm.ADMMessageHandler"
android:exported="false" />
<!-- You must explicitly enable ADM. You must also declare whether your application will run with or without ADM.
If you specify android:required="false", your app must degrade gracefully when ADM is unavailable. -->
<amazon:enable-feature android:name="com.amazon.device.messaging"
android:required="true" />
<receiver android:name="com.cbsnews.ott.adm.ADMMessageHandler$MessageAlertReceiver"
android:permission="com.amazon.device.messaging.permission.SEND">
<intent-filter>
<action android:name="com.amazon.device.messaging.intent.REGISTRATION" />
<action android:name="com.amazon.device.messaging.intent.RECEIVE" />
<category android:name="com.amazonaws.kindletest"/>
</intent-filter>
</receiver>https://stackoverflow.com/questions/16907462
复制相似问题