1

インスタントアプリケーションのために私のアプリケーションを準備したいと思います。 私はアプリケーションモジュール、ベースモジュール、およびフィーチャーモジュールを作成しました。 この設定でプロジェクトを実行するとすばらしいことになります。インスタントアプリケーションを使用したアンドロイドアーキテクチャのコンポーネント

ベースモジュールのGradleファイル内に次の行を実装すると、

annotationProcessor "android.arch.lifecycle:compiler:1.0.0" 
api "android.arch.lifecycle:extensions:1.0.0" 

Gradleビルドは成功しましたが、私はデフォルトのアクティビティを失い、プロジェクトを実行できません。デフォルトのアクティビティは、ベースモジュールマニフェスト内にあります。

私が実装でextensions行を変更する場合。

implementation "android.arch.lifecycle:extensions:1.0.0" 

次のエラーが起こる:

エラー:実行タスクに失敗しました ':アプリ:preDebugBuild' を。

Android dependency 'android.arch.lifecycle:runtime' has different version for the compile (1.0.0) and runtime (1.0.3) classpath. You should manually set the same version via DependencyResolution

誰でも問題の原因を知ることはできますか?

+1

v26.1.0以降のサポートライブラリを使用していますか?もしそうなら、それは今 'Lifecycles'(https://developer.android.com/topic/libraries/support-library/revisions.html#26-1-0)を含んでいます。推移的な依存関係とあなたが含むバージョンの不一致 –

+0

愚かな質問ですが、あなたのDefaultActivityを失うのはどういう意味ですか?フィーチャモジュールで使用されるベースモジュールのライブラリには、apiが適しています。 また、 'gradle -q::dependencies --configuration implementation'を実行して、重複しているライブラリがどこにあるのか確認することができます。 – Lyla

+0

私はこの同じ問題を抱えていました。 – dazza5000

答えて

2

サポートライブラリ26.1.0以降を使用する場合は、ライフサイクル機能が内部に含まれています。すべてが再び働いていた

implementation 'com.android.support:appcompat-v7:26.1.0' 

:使用して、次のlib行

annotationProcessor "android.arch.lifecycle:compiler:1.0.0" 
api "android.arch.lifecycle:extensions:1.0.0" 

のみを除去すること。

Official document reference

関連する問題