我正在尝试将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)得到了相同的结果。
我的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')
...
}
祝你有个主意吗?
答案 0 :(得分:13)
您的依赖项部分中可能包含以下内容:
compile fileTree(include: ['*.jar'], dir: 'libs')
这意味着您正在将libs
文件夹中的所有广告文件编译到您的应用中。因此,切换compile
到provided
的答案可能有效,但除了provided
之外,您还可以对libs文件夹中的所有jar执行compile
您需要删除fileTree
行,并手动添加您拥有的任何广告(不包括amazon-device-messaging-1.0.1.jar
)。
答案 1 :(得分:1)
修复崩溃的解决方案是编辑build.gradle(Module:app)文件。