Android SDK 26构建错误

Android SDK 26构建错误

问题描述:

更新到SDK版本26之后,我尝试构建apk,但出现此错误:

After I updated to SDK version 26 I tried to build an apk but got this error:

Error:Execution failed for task ':app:transformClassesWithFirebasePerformancePluginForFacebookDebug'.
> android/support/v7/app/ActionBarActivity

使用SDK版本25很好,但收到错误消息build.gradle说:

Stay with SDK version 25 is fine but got error message in build.gradle said:

all com.android.support libraries must use the exact same version

依赖性报告(失败):

Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
:app:transformClassesWithFirebasePerformancePluginForFacebookDebug FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:transformClassesWithFirebasePerformancePluginForFacebookDebug'.
> android/support/v7/app/ActionBarActivity

更新1:
我发现了根本原因,但仍然需要一些建议。我调查了依赖性报告。支持库26.1.0来自另一个库

Update 1: I've found the root cause but still, need some suggestions. I looked into dependencies report. Support library 26.1.0 is from another library

+--- com.onesignal:OneSignal:3.6.2
|    +--- com.google.android.gms:play-services-gcm:[10.2.1,11.3.0) -> 11.2.2
|    |    +--- com.google.android.gms:play-services-base:11.2.2 (*)
|    |    +--- com.google.android.gms:play-services-basement:11.2.2 (*)
|    |    \--- com.google.android.gms:play-services-iid:11.2.2
|    |         +--- com.google.android.gms:play-services-base:11.2.2 (*)
|    |         \--- com.google.android.gms:play-services-basement:11.2.2 (*)
|    +--- com.google.android.gms:play-services-location:[10.2.1,11.3.0) -> 11.2.2
|    |    +--- com.google.android.gms:play-services-base:11.2.2 (*)
|    |    +--- com.google.android.gms:play-services-basement:11.2.2 (*)
|    |    \--- com.google.android.gms:play-services-tasks:11.2.2 (*)
|    +--- com.android.support:support-v4:[26.0.0,26.2.0) -> 26.1.0 (*)
|    \--- com.android.support:customtabs:[26.0.0,26.2.0) -> 26.1.0 (*)
\---

更新2:
我已将facebook sdk的使用情况设置如下:

Update 2: I've set the facebook sdk usage as below:

compile('com.facebook.android:facebook-android-sdk:4.26.0') {
    exclude group: 'com.android.support', module: 'appcompat-v7'
}

但仍然出现相同的错误

那么我该如何解决冲突?

So How can I resolve the conflict from this?

最终,我通过强制分配版本来解决此问题。

Eventually, I resolved it by assigning version compulsorily. Thanks to @Eugen Pechanec and @ישו אוהב אותך for inspiring me.

def gmsVersion = '11.2.2'
compile("com.google.android.gms:play-services-gcm:${gmsVersion}") {
    force = true
}
compile("com.google.android.gms:play-services-location:${gmsVersion}") {
    force = true
}

def androidSupportVersion = '25.3.1'
compile("com.android.support:support-v4:${androidSupportVersion}")  {
    force = true
}
compile("com.android.support:customtabs:${androidSupportVersion}")  {
    force = true
}