スタックオーバーで利用可能なほとんどすべての回答、私はすでに過去5〜6時間で試しました。重複をマークしないでください:)
Android プロジェクトに統合するためにAmazon Device Messaging のドキュメントを参照しました。すべて正常にコンパイルされますが、このプロジェクトを実行するとメッセージが表示されてクラッシュします。
FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.MainActivity}: java.lang.RuntimeException:
Stub! You are bundling a stubbed jar in the apk! Please move it to the classpath instead.
以下のように AndroidManifest.xml にマークを付けて、「ADM が利用できない場合は適切に機能を低下させる」というアプローチを使用しました。
<!-- 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="false" />
また、ファイル MainActivity 内で、以下のコードのように ADM の可用性をチェックしています
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//some other codes here
boolean admAvailable = false;
try {
Class.forName( "com.amazon.device.messaging.ADM" );
admAvailable = true ;
}
catch (ClassNotFoundException e) {
// Handle the exception.
}
if(admAvailable) {
ADMManifest.checkManifestAuthoredProperly(getApplicationContext());
}
}