2013-06-03 3 views
3

Я пытаюсь Амазонка устройства Messaging APINoClassDefFoundError Amazon ADM интеграция на разжигает

Я добавил файл банка, используя импорт, как предложено Amazon. Когда я раскрываю на устройстве, я получаю сообщение об ошибке,

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) 

Я не могу добавить файл банку в порядке & экспорта, поскольку это приводит к ошибке заглушки и не рекомендуется Амазонкой.

Говорят, что когда приложение установлено, оно должно выбрать apis с устройства, а не искать файлы классов в приложении, вызывающие эту проблему.

Я попытался построить из Eclipse IDE, а также вручную с помощью ANT.

ответ

2

Пожалуйста, проверьте файл 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') 
} 

Спасибо!

+0

Jignesh Я также получаю один и тот же вопрос. На самом деле, я запускаю одно и то же приложение на мобильном устройстве Android (не в порядке), в котором установлено приложение amazon appstore. Я включил ADM в приложение. Он отлично работает на эмуляторах Kindle. Скажите, пожалуйста, если вам нужна другая информация. – Gem

+0

Я не мог решить вашу проблему –

+0

Хорошо Позвольте мне объяснить мою проблему: у меня есть приложение, которое в настоящее время работает в игровом магазине и магазине приложений amazon (не оптимизировано для Kindle). Теперь я хочу добавить функцию push-уведомления, чтобы добавить код ADM. Теперь, когда я тестирую его на эмуляторе Kindle, я отлично работаю, но когда я запускаю его на устройствах Android, он разбился с той же трассировкой стека, что и @ dcanh121. И это совершенно очевидно. Я не могу добавить файл jar в order & export, поскольку он вызывает ошибку заглушки. Так что же может быть решением? – Gem

0

Я просто хочу добавить, что одной из причин этой ошибки может быть то, что вы пытаетесь настроить ADM на устройстве без Kindle/Fire. Я пришел сюда, полагая, что все приложения магазина Amazon могут использовать ADM, но нет, просто устройства Amazon.

0

Вы отсутствуют ниже линии в манифесте

<!-- 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>