1

スタックオーバーで利用可能なほとんどすべての回答、私はすでに過去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());
    }
}

私のデモアプリのGithubリンク

4

0 に答える 0