Amazon Device Messaging Stub! Android Studio

Я пытаюсь интегрировать Amazon Device Messaging с Android Studio. Сначала я последовал (integrating-your-app-with-adm). Когда я звоню

ADM adm = new ADM(getActivity());
if (adm.isSupported()) {
    // ...
}

Здесь этот вывод на logcat:

E/AndroidRuntime (24472): java.lang.RuntimeException: Stub!

E/AndroidRuntime (24472): at com.amazon.device.messaging.ADM. (Неизвестный источник)

Итак, я последовал за Amazons (Интеграция библиотек Amazon с Android Studio) с тем же результатом.

Затем я пробовал этот и этот без успеха.

Мой AndroidManifest.xml выглядит так:

...
<uses-permission android:name="de.mypackage.permission.RECEIVE_ADM_MESSAGE" />
<uses-permission android:name="com.amazon.device.messaging.permission.RECEIVE" />
<permission android:name=".permission.RECEIVE_ADM_MESSAGE" android:protectionLevel="signature" />
...
<application
    android:name=".MyPackageApplication"
    android:allowBackup="true"
    android:allowClearUserData="true"
    android:hardwareAccelerated="false"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme">
...
    <service android:name=".service.ADMNotificationService" android:exported="false" />

    <amazon:enable-feature android:name="com.amazon.device.messaging" android:required="true" />

    <receiver android:name=".service.ADMNotificationService$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="de.mypackage"/>
        </intent-filter>
    </receiver>
...
</application>

Локальный файл build.gradle выглядит так:

...

dependencies {
    ...
    provided files('libs/amazon-device-messaging-1.0.1.jar')
    ...
}

У вас есть идея?

Ответ 1

Вероятно, у вас есть что-то в этом разделе в разделе зависимостей:

compile fileTree(include: ['*.jar'], dir: 'libs')

Это означает, что вы компилируете все банки в папку libs в свое приложение. Поэтому, вероятно, ответ, который говорит, что переключатель compile - provided работает, но в дополнение к provided вы все равно compile для всех баночек в папке libs.

Вам нужно будет удалить строку fileTree и включить любые банки, которые у вас есть (исключая amazon-device-messaging-1.0.1.jar) вручную.

Ответ 2

Решение об устранении сбоя - это отредактировать файл build.gradle(Module: app).

  • Удалить строку: compile fileTree (include: ['.jar'], dir: 'libs') *
  • Перейдите в папку libs и найдите все необходимые файлы jar.
  • Включите их один за другим для компиляции. Например, компилировать файлы ('libs/ePOS2.jar')
  • Добавить файлы с файлами jar файла ADM ('libs/amazon-device-messaging-1.0.1.jar')
  • Постройте проект