更新到android studio 2.3后,我收到了这个错误消息。我知道这只是一个提示,因为应用程序运行正常,但这真的很奇怪。
所有com.android.support库必须使用完全相同的版本规范(混合版本可能导致运行时崩溃)。找到版本25.1.1、24.0.0。示例包括com.android.support:animatedvector-drawable:25.1.1和com.android.com/support:mediarouter-v7:24.0.0
我的成绩:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:25.1.1'
compile 'com.android.support:support-v4:25.1.1'
compile 'com.android.support:design:25.1.1'
compile 'com.android.support:recyclerview-v7:25.1.1'
compile 'com.android.support:cardview-v7:25.1.1'
compile 'com.google.android.gms:play-services-maps:10.2.0'
compile 'com.google.android.gms:play-services:10.2.0'
compile 'io.reactivex.rxjava2:rxjava:2.0.1'
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
compile 'com.jakewharton:butterknife:8.4.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'
compile 'com.blankj:utilcode:1.3.6'
compile 'com.orhanobut:logger:1.15'
compile 'com.facebook.stetho:stetho:1.4.2'
provided 'com.google.auto.value:auto-value:1.2'
annotationProcessor 'com.google.auto.value:auto-value:1.2'
annotationProcessor 'com.ryanharter.auto.value:auto-value-parcel:0.2.5'
compile 'com.mikepenz:iconics-core:2.8.2@aar'
compile('com.mikepenz:materialdrawer:5.8.1@aar') { transitive = true }
compile 'com.mikepenz:google-material-typeface:2.2.0.3.original@aar'
compile 'me.zhanghai.android.materialprogressbar:library:1.3.0'
compile 'com.github.GrenderG:Toasty:1.1.1'
compile 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.8.0'
compile 'com.github.MAXDeliveryNG:slideview:1.0.0'
compile 'com.facebook.fresco:fresco:1.0.1'
compile 'com.github.bumptech.glide:glide:3.7.0'
compile 'com.google.maps.android:android-maps-utils:0.4.4'
compile 'com.github.jd-alexander:library:1.1.0'
}
我的项目中有这些依赖项:
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation 'com.android.support:support-v4:28.0.0'
implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support:support-media-compat:28.0.0'
implementation 'com.google.android.gms:play-services-maps:16.1.0'
implementation 'com.google.firebase:firebase-database:17.0.0'
implementation 'com.google.firebase:firebase-storage:17.0.0'
implementation 'com.google.firebase:firebase-messaging:18.0.0'
implementation 'com.firebaseui:firebase-ui-storage:0.6.0'
到目前为止,似乎没有什么问题,但我得到了这样的信息:
找到版本28.0.0、23.4.0。示例包括com.android.support:动画矢量可绘制:28.0.0和支持:palette-v7:23.4。
然后我做了:
$ ./gradlew -q dependencies app:dependencies --configuration debugAndroidTestCompileClasspath >> dep.txt
在文件中,我搜索了调色板,发现它被firebase存储所使用:
\--- com.firebaseui:firebase-ui-storage:0.6.0
+--- com.android.support:appcompat-v7:23.4.0 -> 28.0.0 (*)
+--- com.android.support:palette-v7:23.4.0
添加后:
implementation 'com.android.support:palette-v7:28.0.0'
似乎已解决,没有更多错误。
//干杯
我的问题和你的相似。这里存在一个错误!
编译“com.android.support:appcompat-v7:25.3.0”
所有com.android.support库必须使用完全相同的版本规范(混合版本可能导致运行时崩溃)。找到版本25.3.0、24.0.0。示例包括“com.android.support:animatedvector-drawable:25.3.0”和“com.andrio.support:mediarouter-v7:24.0.0”
看到这个示例包括“com.android.support:animatedvector-drawable:25.3.0”和“com.andrio.support:mediarouter-v7:24.0.0”
只需在依赖项中添加这些代码,确保版本相同。
compile 'com.android.support:animated-vector-drawable:25.3.0'
compile 'com.android.support:mediarouter-v7:25.3.0'
我有这个:
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support:design:27.1.1'
implementation 'com.android.support:support-v4:27.1.1'
implementation 'com.google.firebase:firebase-auth:12.0.1'
implementation 'com.google.firebase:firebase-firestore:12.0.1'
implementation 'com.google.firebase:firebase-messaging:12.0.1'
implementation 'com.google.android.gms:play-services-auth:12.0.1'
implementation'com.facebook.android:facebook-login:[4,5)'
implementation 'com.twitter.sdk.android:twitter:3.1.1'
implementation 'com.github.PhilJay:MPAndroidChart:v3.0.3'
implementation 'org.jetbrains:annotations-java5:15.0'
implementation project(':vehiclesapi')
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}
并得到以下错误:
解决方案很简单-主要依赖项都是正确的,因此留下了任何第三方依赖项。一个接一个地删除,直到找到罪魁祸首,结果是facebook!它使用的是27.0.2版本的android支持库。我试图添加cardview 27.1.1版本,但这并不奏效,因为解决方案仍然足够简单。
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support:design:27.1.1'
implementation 'com.android.support:support-v4:27.1.1'
implementation 'com.google.firebase:firebase-auth:12.0.1'
implementation 'com.google.firebase:firebase-firestore:12.0.1'
implementation 'com.google.firebase:firebase-messaging:12.0.1'
implementation 'com.google.android.gms:play-services-auth:12.0.1'
implementation('com.facebook.android:facebook-login:[4,5)'){
// contains com.android.support:v7:27.0.2, included required com.android.support.*:27.1.1 modules
exclude group: 'com.android.support'
}
implementation 'com.android.support:cardview-v7:27.1.1' // to replace facebook sdk's cardview-v7:27.0.2.
implementation 'com.twitter.sdk.android:twitter:3.1.1'
implementation 'com.github.PhilJay:MPAndroidChart:v3.0.3'
implementation 'org.jetbrains:annotations-java5:15.0'
implementation project(':vehiclesapi')
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}
我的项目中有这些依赖项:
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation 'com.android.support:support-v4:28.0.0'
implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support:support-media-compat:28.0.0'
implementation 'com.google.android.gms:play-services-maps:16.1.0'
implementation 'com.google.firebase:firebase-database:17.0.0'
implementation 'com.google.firebase:firebase-storage:17.0.0'
implementation 'com.google.firebase:firebase-messaging:18.0.0'
implementation 'com.firebaseui:firebase-ui-storage:0.6.0'
到目前为止,似乎没有什么问题,但我得到了这样的信息:
找到版本28.0.0、23.4.0。示例包括com.android.support:动画矢量可绘制:28.0.0和支持:palette-v7:23.4。
然后我做了:
$ ./gradlew -q dependencies app:dependencies --configuration debugAndroidTestCompileClasspath >> dep.txt
在文件中,我搜索了调色板,发现它被firebase存储所使用:
\--- com.firebaseui:firebase-ui-storage:0.6.0
+--- com.android.support:appcompat-v7:23.4.0 -> 28.0.0 (*)
+--- com.android.support:palette-v7:23.4.0
添加后:
implementation 'com.android.support:palette-v7:28.0.0'
似乎已解决,没有更多错误。
//干杯
对于所有情况,不仅仅是这些版本或库:
注意这个小信息窗口,它显示了一些关于错误的信息,其中显示了您必须更改和添加的示例。
在这种情况下:
找到版本25.1.1、24.0.0。示例包括com.android.support:animatedvector-drawable:25.11和com.android.support:mediarouter-v7:24.0.0
Your
support:动画矢量可绘制:25.1.1
是版本25.1.1
com.android.support:mediarouter-v7:24.0.0
版本为24.0.0,因此您必须添加具有相同版本的mediarouter:
com.android.support:mediarouter-v7:25.1.1
对于小信息窗口显示的每个示例,都要这样做,在本例中,所有没有25.1.1版本的库都要这样。
修复指定的库后,必须同步放坡,以查看需要更改的下一个库和包。
重要:如果您没有显式地使用一个或多个指定的库,并且它会给您带来错误,这意味着另一个库正在内部使用它,那么无论如何都要显式地编译它。
您还可以使用另一种方法来查看您实际编译的所有库的版本的差异(例如运行grade依赖关系报告或转到库文件),真正的目的是编译您使用的所有库,使其具有相同的版本。