Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
所有com.android.support库必须使用完全相同的版本_Android_Gradle - Fatal编程技术网

所有com.android.support库必须使用完全相同的版本

所有com.android.support库必须使用完全相同的版本,android,gradle,Android,Gradle,当我今天将android studio从2.2.3版升级到2.3版时,我在依赖项的第一个编译行build.gradle中突然出现了这个错误 (哪一个家属在第一位并不重要,但总是会给我这个错误): 所有com.android.support库必须使用完全相同的版本规范(混合版本可能导致运行时崩溃)。已找到版本25.2.0、24.0.0。示例包括com.android.support:animated vector drawable:25.2.0和com.android.support:mediar

当我今天将android studio从2.2.3版升级到2.3版时,我在依赖项的第一个编译行build.gradle中突然出现了这个错误

(哪一个家属在第一位并不重要,但总是会给我这个错误):

所有com.android.support库必须使用完全相同的版本规范(混合版本可能导致运行时崩溃)。已找到版本25.2.0、24.0.0。示例包括com.android.support:animated vector drawable:25.2.0和com.android.support:mediarouter-v7:24.0.0

我已经查看了整个项目,但找不到版本24.0.0的任何用法(我使用ctrl+shift+F在整个项目中搜索)

这是我的身材。格雷德尔:

android {
    compileSdkVersion 25
    buildToolsVersion '25.0.2'
    useLibrary 'org.apache.http.legacy'

    defaultConfig {
        minSdkVersion 16
        targetSdkVersion 25
        versionName "1.0"
        versionCode 1
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
        debug {
            minifyEnabled true
            shrinkResources true
        }
    }
    dexOptions {
        javaMaxHeapSize "4g"
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:25.2.0'
    compile 'com.google.android.gms:play-services:+'
    compile 'com.squareup:otto:1.3.8'
    compile 'com.mcxiaoke.volley:library-aar:1.0.0'
    compile 'com.android.support:multidex:1.0.1'
}
我查看了整个项目,没有发现24.0.0版本的任何用法

它作为一个可传递的依赖项来自于您的其他依赖项之一

不过,首先要解决
build.gradle
文件中的其他问题,因为它们也可能会解决此问题:

  • 不要对库版本使用
    +
    。使用特定的版本

  • 不要使用
    播放服务
    。对所需的Play Services SDK的特定部分使用特定依赖项
    play services
    引入了所有的play服务,使您的应用程序比需要的大得多,并大大降低了构建时间

  • com.mcxiaoke.volley
    替换为官方的截击工件(
    com.android.volley:volley:1.0.0


如果这些都不能解决这个问题,那么您可以运行Gradle依赖关系报告来查看完整的依赖关系树是什么。从这里,您将看到您的哪个库要求使用不同版本的Android支持库。无论它要求什么,你都可以直接用
25.2.0
版本来要求它,或者使用Gradle的其他冲突解决方法来安排获得相同的版本。

试着用你正在使用的特定软件包替换
compile'com.google.android.gms:play services:+'
(请参阅此答案:)

有人指出,添加此行将删除错误

compile 'com.android.support:customtabs:25.2.0'

同样的问题也发生在我身上。我刚才所做的增加了这两行

compile 'com.android.support:animated-vector-drawable:25.2.0'
compile 'com.android.support:customtabs:25.2.0'

问题解决了。我还删除了我以前版本的gradle文件夹

看起来Android Studio 2.3需要显式声明外部依赖项。依赖项是customtabs和palette-v7

您需要在build.gradle中显式添加以下两个外部依赖项/包

compile 'com.android.support:customtabs:25.2.0'
compile 'com.android.support:palette-v7:25.2.0'

我认为这将解决这个问题。

使用特定版本,而不是
+
。例如,“com.google.android.gms:play services:10.2.0”

并使用您正在使用的特定SDK,而不是添加整个Play SDK包。例如:

'com.google.android.gms:play-services-gcm:10.2.0'
'com.google.android.gms:play-services-maps:10.2.0'
'com.google.android.gms:play-services-location:10.2.0'
这帮助我解决了这个问题。

对于所有情况,而不仅仅是这些版本或库: 请注意这个小信息窗口,它显示了一些关于错误的信息,它显示了您必须更改和添加的示例

你看不到它的用法,因为它的用法可能是另一个库的内部用法(比如GooglePlayServices或squareup)。 只需编译小信息窗口显示的所有示例,在您的案例中:

示例包括com.android.support:animated vector drawable:25.2.0和 支持:mediarouter-v7:24.0.0

你的

支持:动画矢量绘图:25.2.0

是25.2.0版,您的

支持:mediarouter-v7:24.0.0

是24.0.0版,因此您必须添加具有相同版本的mediarouter:

com.android.support:mediarouter-v7:25.2.0
对于小信息窗口所说的每一个例子都要这样做;在您的情况下,所有没有版本25.2.0的库。

在修复指定的库后,您必须同步梯度,以查看下一个需要更改的库和包。您可以添加

compile 'com.android.support:customtabs:25.2.0'
通过右键单击gradle dependency,可以添加冲突的依赖项。 对我来说是

compile 'com.android.support:cardview-v7:25.2.0'
compile 'com.android.support:animated-vector-drawable:25.2.0'
要详细说明,支持库案例的正确依赖项解析如下:

不要只是添加可传递依赖项作为直接依赖项来强制其版本;这在语义上是错误的(如果您删除了引入可传递依赖项的依赖项,那么您现在就有了一个未实际使用的剩余依赖项)

请执行以下操作:

在root
build.gradle
中,您应该已经有了

ext {
    supportlib_version = '27.1.1'
    ...
}
并在您的应用程序中使用此属性,例如
app/build.gradle
like

dependencies {
    implementation "com.android.support:appcompat-v7:$supportlib_version"
    implementation "com.android.support:recyclerview-v7:$supportlib_version"
    ...
}
现在,在root
build.gradle

subprojects {
    project.configurations.all {
        resolutionStrategy.eachDependency { details ->
            if (details.requested.group == 'com.android.support'
                    && !details.requested.name.contains('multidex') ) {
                details.useVersion "$supportlib_version"
            }
        }
    }
}
也就是说,在每个模块和每个配置中,在解析依赖项时,如果它是一个支持库(但不是多索引库(可能有更多例外)),则强制将版本转换为标准化的支持库版本


现在,在jetpack和Jettifier的时代,采用一种变体(假设您已经迁移到androidx版本)似乎是明智的:

例如,
app/build.gradle
现在将包含androidx依赖项,但是您使用的库可能仍然会临时拉入supportlib依赖项,您仍然希望在同一版本(即28.0.0)上使用这些依赖项,以便在构建时对它们进行正确的jetified


因此,保持根
build.gradle
部分不变,对
supportlib\u版本使用
28.0.0

使相同版本或最新版本的所有依赖项都替换为25.2.0版本的支持库版本

我在Android studio 2.3中也遇到了同样的问题

之前:

然后,我尝试:

./gradlew -q dependencies app --configuration compile

+--- project :lib
+--- com.jonathanfinerty.once:once:1.2.2
|    \--- com.android.support:support-annotations:25.3.1
+--- com.zhy:base-rvadapter:3.0.3
|    \--- com.android.support:recyclerview-v7:23.4.0
|         +--- com.android.support:support-annotations:23.4.0 -> 25.3.1
|         \--- com.android.support:support-v4:23.4.0 -> 25.3.1
|              +--- com.android.support:support-compat:25.3.1
|              |    \--- com.android.support:support-annotations:25.3.1
|              +--- com.android.support:support-media-compat:25.3.1
|              |    +--- com.android.support:support-annotations:25.3.1
|              |    \--- com.android.support:support-compat:25.3.1 (*)
|              +--- com.android.support:support-core-utils:25.3.1
|              |    +--- com.android.support:support-annotations:25.3.1
|              |    \--- com.android.support:support-compat:25.3.1 (*)
|              +--- com.android.support:support-core-ui:25.3.1
|              |    +--- com.android.support:support-annotations:25.3.1
|              |    \--- com.android.support:support-compat:25.3.1 (*)
|              \--- com.android.support:support-fragment:25.3.1
|                   +--- com.android.support:support-compat:25.3.1 (*)
|                   +--- com.android.support:support-media-compat:25.3.1 (*)
|                   +--- com.android.support:support-core-ui:25.3.1 (*)
|                   \--- com.android.support:support-core-utils:25.3.1 (*)
+--- com.squareup.okhttp3:okhttp:3.6.0
|    \--- com.squareup.okio:okio:1.11.0
+--- com.squareup.okhttp3:logging-interceptor:3.6.0
|    \--- com.squareup.okhttp3:okhttp:3.6.0 (*)
+--- com.google.code.gson:gson:2.8.0
+--- com.jakewharton:butterknife:8.4.0
|    +--- com.jakewharton:butterknife-annotations:8.4.0
|    |    \--- com.android.support:support-annotations:24.1.0 -> 25.3.1
|    \--- com.android.support:support-annotations:24.1.0 -> 25.3.1
+--- com.github.bumptech.glide:glide:3.7.0
+--- org.litepal.android:core:1.5.1
+--- com.orhanobut:logger:1.15
+--- com.android.support:appcompat-v7:25.3.1
|    +--- com.android.support:support-annotations:25.3.1
|    +--- com.android.support:support-v4:25.3.1 (*)
|    +--- com.android.support:support-vector-drawable:25.3.1
|    |    +--- com.android.support:support-annotations:25.3.1
|    |    \--- com.android.support:support-compat:25.3.1 (*)
|    \--- com.android.support:animated-vector-drawable:25.3.1
|         \--- com.android.support:support-vector-drawable:25.3.1 (*)
基本rvadapter库不包括
com.zhy:base-rvadapter:3.0.3
|    \--- com.android.support:recyclerview-v7:23.4.0
compile 'com.android.support:design:25.3.1'
+--- project :lib
+--- com.jonathanfinerty.once:once:1.2.2
|    \--- com.android.support:support-annotations:25.3.1
+--- com.zhy:base-rvadapter:3.0.3
|    \--- com.android.support:recyclerview-v7:23.4.0 -> 25.3.1
|         +--- com.android.support:support-annotations:25.3.1
|         +--- com.android.support:support-compat:25.3.1
|         |    \--- com.android.support:support-annotations:25.3.1
|         \--- com.android.support:support-core-ui:25.3.1
|              +--- com.android.support:support-annotations:25.3.1
|              \--- com.android.support:support-compat:25.3.1 (*)
+--- com.squareup.okhttp3:okhttp:3.6.0
|    \--- com.squareup.okio:okio:1.11.0
+--- com.squareup.okhttp3:logging-interceptor:3.6.0
|    \--- com.squareup.okhttp3:okhttp:3.6.0 (*)
+--- com.google.code.gson:gson:2.8.0
+--- com.jakewharton:butterknife:8.4.0
|    +--- com.jakewharton:butterknife-annotations:8.4.0
|    |    \--- com.android.support:support-annotations:24.1.0 -> 25.3.1
|    \--- com.android.support:support-annotations:24.1.0 -> 25.3.1
+--- com.github.bumptech.glide:glide:3.7.0
+--- org.litepal.android:core:1.5.1
+--- com.orhanobut:logger:1.15
+--- com.android.support:appcompat-v7:25.3.1
|    +--- com.android.support:support-annotations:25.3.1
|    +--- com.android.support:support-v4:25.3.1
|    |    +--- com.android.support:support-compat:25.3.1 (*)
|    |    +--- com.android.support:support-media-compat:25.3.1
|    |    |    +--- com.android.support:support-annotations:25.3.1
|    |    |    \--- com.android.support:support-compat:25.3.1 (*)
|    |    +--- com.android.support:support-core-utils:25.3.1
|    |    |    +--- com.android.support:support-annotations:25.3.1
|    |    |    \--- com.android.support:support-compat:25.3.1 (*)
|    |    +--- com.android.support:support-core-ui:25.3.1 (*)
|    |    \--- com.android.support:support-fragment:25.3.1
|    |         +--- com.android.support:support-compat:25.3.1 (*)
|    |         +--- com.android.support:support-media-compat:25.3.1 (*)
|    |         +--- com.android.support:support-core-ui:25.3.1 (*)
|    |         \--- com.android.support:support-core-utils:25.3.1 (*)
|    +--- com.android.support:support-vector-drawable:25.3.1
|    |    +--- com.android.support:support-annotations:25.3.1
|    |    \--- com.android.support:support-compat:25.3.1 (*)
|    \--- com.android.support:animated-vector-drawable:25.3.1
|         \--- com.android.support:support-vector-drawable:25.3.1 (*)
\--- com.android.support:design:25.3.1
     +--- com.android.support:support-v4:25.3.1 (*)
     +--- com.android.support:appcompat-v7:25.3.1 (*)
     +--- com.android.support:recyclerview-v7:25.3.1 (*)
     \--- com.android.support:transition:25.3.1
          +--- com.android.support:support-annotations:25.3.1
          \--- com.android.support:support-v4:25.3.1 (*)
 compile 'com.google.android.gms:play-services:9.6.1'
compile 'com.google.android.gms:play-services-fitness:10.2.4'
compile 'com.google.android.gms:play-services-wearable:10.2.4'