2017-11-13 20 views
3

Androidスタジオ3とGradle 4に移行しました。その後、build.gradleファイルのcompileimplementationに変更しました。私はimplementationエラーが消えapiに変更するとAndroid依存性 '..'はコンパイル(..)とランタイム(..)のバージョンが異なります。

Error:Execution failed for task ':app:preDebugBuild'. 
> Android dependency 'com.google.firebase:firebase-core' has different version for the compile (9.0.0) and runtime (11.6.0) classpath. You should manually set the same version via DependencyResolution 

:しかし、私はエラーを取得します。しかし、これは解決策ではありません。私は、アプリケーションモジュールと1つのライブラリモジュールを持っています。

implementation project(':common-lib') 

apply plugin: 'com.google.gms.google-services'正しくアプリのbuild.gradleファイルの底部に配置されているが(プロジェクトがGradleの4への移行前に働いていた)gradlewアプリから

依存性:アプリケーションbuild.gradleは、唯一の依存関係があります。依存性(テキストのクリッピング):

コンパイル

debugAndroidTestCompileClasspath - Resolved configuration for compilation for variant: debugAndroidTest 
+--- com.google.firebase:firebase-core:9.0.0 
| \--- com.google.firebase:firebase-analytics:9.0.0 
|   +--- com.google.android.gms:play-services-basement:9.0.0 
|   | \--- com.android.support:support-v4:23.0.0 
|   |   \--- com.android.support:support-annotations:23.0.0 
|   +--- com.google.firebase:firebase-common:9.0.0 
|   | +--- com.google.android.gms:play-services-basement:9.0.0 (*) 
|   | \--- com.google.android.gms:play-services-tasks:9.0.0 
|   |   \--- com.google.android.gms:play-services-basement:9.0.0 (*) 
|   \--- com.google.firebase:firebase-analytics-impl:9.0.0 
|    +--- com.google.android.gms:play-services-base:9.0.0 
|    | +--- com.google.android.gms:play-services-basement:9.0.0 (*) 
|    | +--- com.google.firebase:firebase-common:9.0.0 (*) 
|    | \--- com.google.android.gms:play-services-tasks:9.0.0 (*) 
|    +--- com.google.android.gms:play-services-basement:9.0.0 (*) 
|    +--- com.google.firebase:firebase-iid:9.0.0 
|    | +--- com.google.android.gms:play-services-basement:9.0.0 (*) 
|    | \--- com.google.firebase:firebase-common:9.0.0 (*) 
|    \--- com.google.firebase:firebase-common:9.0.0 (*) 
\--- project :common-lib 
(............) 

ランタイム

debugAndroidTestRuntimeClasspath - Resolved configuration for runtime for variant: debugAndroidTest 
+--- com.google.firebase:firebase-core:9.0.0 -> 11.6.0 
| \--- com.google.firebase:firebase-analytics:11.6.0 
|   +--- com.google.android.gms:play-services-basement:11.6.0 
|   | +--- com.android.support:support-v4:25.2.0 -> 26.1.0 
|   | | +--- com.android.support:support-compat:26.1.0 
|   | | | +--- com.android.support:support-annotations:26.1.0 
|   | | | \--- android.arch.lifecycle:runtime:1.0.0 
|   | | |   +--- android.arch.lifecycle:common:1.0.0 
|   | | |   \--- android.arch.core:common:1.0.0 
|   | | +--- com.android.support:support-media-compat:26.1.0 
|   | | | +--- com.android.support:support-annotations:26.1.0 
|   | | | \--- com.android.support:support-compat:26.1.0 (*) 
|   | | +--- com.android.support:support-core-utils:26.1.0 
|   | | | +--- com.android.support:support-annotations:26.1.0 
|   | | | \--- com.android.support:support-compat:26.1.0 (*) 
|   | | +--- com.android.support:support-core-ui:26.1.0 
|   | | | +--- com.android.support:support-annotations:26.1.0 
|   | | | \--- com.android.support:support-compat:26.1.0 (*) 
|   | | \--- com.android.support:support-fragment:26.1.0 
|   | |   +--- com.android.support:support-compat:26.1.0 (*) 
|   | |   +--- com.android.support:support-core-ui:26.1.0 (*) 
|   | |   \--- com.android.support:support-core-utils:26.1.0 (*) 
|   | \--- com.google.android.gms:play-services-basement-license:11.6.0 
|   +--- com.google.firebase:firebase-common:11.6.0 
|   | +--- com.google.android.gms:play-services-basement:11.6.0 (*) 
|   | +--- com.google.android.gms:play-services-tasks:11.6.0 
|   | | +--- com.google.android.gms:play-services-basement:11.6.0 (*) 
|   | | \--- com.google.android.gms:play-services-tasks-license:11.6.0 
|   | \--- com.google.firebase:firebase-common-license:11.6.0 
|   +--- com.google.firebase:firebase-analytics-impl:11.6.0 
|   | +--- com.google.android.gms:play-services-basement:11.6.0 (*) 
|   | +--- com.google.firebase:firebase-iid:11.6.0 
|   | | +--- com.google.android.gms:play-services-basement:11.6.0 (*) 
|   | | +--- com.google.firebase:firebase-common:11.6.0 (*) 
|   | | +--- com.google.android.gms:play-services-tasks:11.6.0 (*) 
|   | | \--- com.google.firebase:firebase-iid-license:11.6.0 
|   | +--- com.google.firebase:firebase-common:11.6.0 (*) 
|   | +--- com.google.android.gms:play-services-tasks:11.6.0 (*) 
|   | \--- com.google.firebase:firebase-analytics-impl-license:11.6.0 
|   \--- com.google.firebase:firebase-analytics-license:11.6.0 
\--- project :common-lib 
(.............) 

編集:

アプリの依存関係

dependencies { 
    implementation project(':common-lib') 
} 

共通-libの依存関係

dependencies { 
    //android firebase 
    implementation "com.google.firebase:firebase-core:$firebase_version" 
    implementation "com.google.firebase:firebase-crash:$firebase_version" 
    implementation "com.google.firebase:firebase-messaging:$firebase_version" 
    implementation "com.google.firebase:firebase-ads:$firebase_version" 
    //android support 
    implementation "com.android.support:appcompat-v7:$support_version" 
    implementation "com.android.support:design:$support_version" 
    implementation "com.android.support:cardview-v7:$support_version" 
    implementation "com.android.support:percent:$support_version" 
    //others 
    implementation 'com.google.code.gson:gson:2.8.0' 
    implementation 'com.hannesdorfmann:adapterdelegates3:3.0.1' 
    implementation 'net.danlew:android.joda:2.9.9' 
    implementation 'org.ocpsoft.prettytime:prettytime:4.0.1.Final' 
    implementation 'com.squareup.picasso:picasso:2.5.2' 
    implementation 'com.github.simbiose:Encryption:2.0.1' 

    //server 
    implementation files('libs/xxx.jar') 
    implementation files('libs/yyy.jar') 
    implementation files('libs/zzz.jar') 

    //tests 
    testImplementation 'junit:junit:4.12' 

} 

バージョンは:

ext { 
    firebase_version = '11.6.0' 
    support_version = '26.1.0' 
} 
+0

あなた*アプリ*依存関係とあなたの* LIB *依存関係を投稿し、あなたのごbuildscriptに次のコードを追加します。 – Ibrahim

+0

@Ibrahim posted – AppiDevo

+0

*あなたの* app *依存関係に 'com.google.firebase:firebase'ライブラリを含めましたか? – Ibrahim

答えて

12

それは、そのPR表示されます明らかに、Firebase SDKをあなたのアプリケーションモジュールにエクスポートするために、あなたは暗黙のうちにcommon-libモジュールに依存していました。 「コンパイル」から「実装」に変更したので、これらのSDKをエクスポートしなくなりました。それでは、Googleのサービスプラグインがfirebase-coreのv9.0.0をあなたのアプリケーションモジュールの可視クラスパスに存在しないので、あなたのアプリケーションモジュールに追加しています。

正しいバージョンのアプリケーションモジュールにfirebase-coreを手動で追加することで、この問題を回避できるはずです。または、「実装」依存関係の代わりに「api」依存関係に切り替えることで、ライブラリモジュールからアプリケーションモジュールにFirebase SDKを引き続きエクスポートできます。

+0

'google-services'プラグインは' appbase-core'をアプリケーション依存性に追加しますか? 'firebase-core' v.9を依存関係に含めると同じ動作になりますか? – Ibrahim

+0

それはうまくいく、そうです。手動で正しいバージョンをアプリケーションに追加して、すべてのバージョンを強制的に一致させます。 –

+0

この回答をありがとう、Doug。あなたはちょっと私を救っただけです。 – RedBrogdon

1

これは私の仕事:

subprojects { 
    project.configurations.all { 
    resolutionStrategy.eachDependency { details -> 
     if (details.requested.group == 'com.android.support' 
       && !details.requested.name.contains('multidex')) { 
      details.useVersion "version which should be used - in your case 11.6.0" 
     } 
    } 
    } 
} 

よろしく、

エディ

関連する問題