2017-06-28 1 views
0

タグに設定されていない「splitName」属性を有するものである分割logcatを見て、それはこのエラーを持っている InstantAppBundleException:ベース分割が見つかりませんでした!ベースはAPKインスタントアプリを起動しようとすると、それが報告さ

Side loading failed with message: Failure when trying to read bundel. 
Failed to parse app: /data/local/tmp/aia/my_app.zip 

InstantAppBundleException: No base split found! 
Base split APK is the one with no 'splitName' attribute set on the <manifest> tag 

私は何を欠席しましたか?

答えて

2

ベースモジュールのbaseFeatureタグを忘れている可能性があります。 ベースモジュールと2つの機能モジュールを使用している場合、グラデルは次のようになります(正しいプラグイン、baseFeature = trueタグ、および正しい依存宣言に注意する必要があります)。

Baseモジュール Gradleのファイル:

apply plugin: 'com.android.feature' 

android { 
    //this is mandatory for the base module of the project 
    baseFeature = true 
    ... 
} 

dependencies { 
    ... 
    feature project(':feature1') 
    feature project(':feature2') 
    application project(':hello-installed') 
} 

特長1モジュール特長2モジュール Gradleのファイル:

apply plugin: 'com.android.feature' 

android { 
    ... 
} 

dependencies { 
    ... 
    implementation project(':base') 
} 

インスタントアプリケーションモジュールのGradleファイル:

apply plugin: 'com.android.instantapp' 

dependencies { 
    implementation project(':base') 
    implementation project(':feature1') 
    implementation project(':feature2') 
} 

全アプリケーションモジュールのGradleファイル:

apply plugin: 'com.android.application' 

android { 
    //classic gradle declaration for legacy apps 
} 

dependencies { 
    implementation project(':base') 
    implementation project(':feature1') 
    implementation project(':feature2') 

    //non instant libraries will only appear here 
    implementation project(':nonInstantLibrary') 
} 

非インスタント互換性のあるモジュールのGradleファイル:

//it will use the legacy library plugin 
apply plugin: 'com.android.library' 

dependencies { 
    ... 
    implementation project(':base') 
} 
+0

私は、ベースモジュールが何であるかを理解しよう。フィーチャモジュールとベースモジュールの違いについて説明できますか? Googleのドキュメントはこれについて明確ではありません。 –

+0

@ GillisHaasnootインスタントアプリはプロジェクトのモジュール化に基づいています。プロジェクトには、他のすべてのモジュールに共通する、アプリケーションの中核となるベースモジュールが1つだけあります。たとえば、AppCompat、Analytics、Databaseなどの共通リソースのJavaコード/依存関係が含まれている可能性があります。一方、フィーチャー・モジュールは、基本モジュールをライブラリーとして使用できる特定のスタンドアロン機能を実装しますが、他の機能を使用してください。ここで素敵な説明:https://willowtreeapps.com/ideas/an-introduction-to-android-instant-apps – gbaccetta

+0

はい、私はそれを取得します。しかし、なぜインスタントアプリケーション/アプリケーションにベースモジュールを設定する必要がありますか?機能はすでにそれらを使用している私は右ですか?実際にライブラリとベースモジュールの違いはありますか? –

関連する問題