亚马逊设备消息存根! Android Studio

时间:2015-08-04 09:40:26

标签: android android-studio android-gradle build.gradle amazon-device-messaging

我正在尝试将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。(Unknown Source)

所以我跟随亚马逊(Integrating Amazon Libraries with Android Studio)得到了相同的结果。

然后我尝试thisthis但没有成功。

我的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')
    ...
}

祝你有个主意吗?

2 个答案:

答案 0 :(得分:13)

您的依赖项部分中可能包含以下内容:

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

这意味着您正在将libs文件夹中的所有广告文件编译到您的应用中。因此,切换compileprovided 的答案可能有效,但除了provided之外,您还可以对libs文件夹中的所有jar执行compile

您需要删除fileTree行,并手动添加您拥有的任何广告(不包括amazon-device-messaging-1.0.1.jar)。

答案 1 :(得分:1)

修复崩溃的解决方案是编辑build.gradle(Module:app)文件。

  1. 删除行:编译fileTree(包括:[&#39; .jar&#39;],dir:&#39; libs&#39;)*
  2. 转到 libs 文件夹,找出所需的所有jar文件
  3. 逐个包含它们进行编译。例如,编译文件(&#39; libs / ePOS2.jar&#39;)
  4. 添加ADM jar文件提供的文件(&#39; libs / amazon-device-messaging-1.0.1.jar&#39;)
  5. 构建项目