【问题标题】:Asking about correct support library in android在android中询问正确的支持库
【发布时间】:2017-03-07 17:22:25
【问题描述】:

当我的buildToolsVersion 是'23.0.3'时,我的compile 'com.android.support:appcompat-v7:XXX' 中的XXX 的值应该是多少

【问题讨论】:

    标签: android android-gradle-plugin build.gradle android-support-library


    【解决方案1】:

    buildToolsVersion 是您要使用的编译器(aapt、dx、renderscript 编译器等)的版本。
    对于每个 API 级别(从 18 开始),都有一个匹配的 .0.0 版本。

    您可以使用比 compileSdkVersion 更高版本的构建工具,以便在不更改构建应用程序的基础上选择新的/更好的编译器。

    那么在任何情况下,您都应该使用最新版本buildToolsVersion,独立于所使用的支持库的版本。

    此外。
    强烈建议始终使用最新的 SDK 进行编译。 这意味着今天你应该使用compileSdkVersion25。

    如果您使用支持库,使用最新的 SDK 编译是使用最新的支持库版本的要求。 例如,要使用 25.0.0 支持库,您的 compileSdkVersion 必须至少为 25(前几个数字需要匹配!)。

    换句话说,今天的最佳解决方案应该是:

    buildToolsVersion '25.0.0'
    compileSdkVersion 25
    compile 'com.android.support:appcompat-v7:25.2.0
    

    但你也可以使用:

    buildToolsVersion '25.0.0'
    compileSdkVersion 23
    compile 'com.android.support:appcompat-v7:23.x.x
    

    【讨论】:

    • 但是当我使用 25.0.0 时出现此错误错误:java.util.concurrent.ExecutionException:java.lang.RuntimeException:AAPT 进程未准备好接收命令错误:任务执行失败':app:mergeDebugResources'。 > 错误:java.util.concurrent.ExecutionException:java.lang.RuntimeException:AAPT 进程未准备好接收命令信息:BUILD FAILED
    • @rock19 您应该提出一个带有专门主题的新问题。这是不同的东西,通过这种方式,其他人可以帮助您解决特定问题。还要在问题中添加完整的错误消息。
    • 但是这个问题已经出现了stackoverflow.com/questions/42594966/…你能回答这个吗?
    • @rock19 看起来是一样的,但是没有完整的错误是不可能回答的。这可能是不同的原因。
    • 你能列出常见的可能原因吗?
    【解决方案2】:

    去看看 在菜单文件|项目结构中单击依赖项选项卡 在那里你可以检查编译库...你也可以在这里使用 Flavors 和 Build types Tab 更改库

    【讨论】:

    • 但这并不能回答问题。
    【解决方案3】:

    最好使用compile 'com.android.support:appcompat-v7:23.0.2' 因为您的 buildToolsVersion 是“23.0.3”。

    通常,无论您的问题中的构建工具版本是 23.0.3 是 compile 'com.android.support:appcompat-v7:23.0.2 并且可能如果您还使用 com.android.support 的其他一些依赖项,您可以使用 com.android.support:_________:23.0.2

    【讨论】:

    • 这不是真的。例如,为什么应该是 23.0.2 而不是 23.4.0?例如 buildTools 的修复和支持库之间没有关系。
    • 因为 sdk 构建工具是捆绑下载的,所以它不确定它是否必须具有最新的依赖关系。像示例 //它需要 compileSdkVersion 23 compile 'com.android.support:appcompat-v7:23.4.0' compile 'com.android.support:appcompat-v7:23.3.0' compile 'com.android.support:appcompat- v7:23.2.1' 编译 'com.android.support:appcompat-v7:23.2.0' 编译 'com.android.support:appcompat-v7:23.1.1' 编译 'com.android.support:appcompat-v7: 23.1.0' 编译'com.android.support:appcompat-v7:23.0.1' 编译'com.android.support:appcompat-v7:23.0.0'
    • 我猜有些答案是正确的,因为例如当您选择 buildToolVersion 23.0.3 并且您的依赖项版本为 21 时,它只会在 gradle 文件中使用红线警告使用 23 个依赖项。根据 Gabriele Mariotti 所说的答案,他也是正确的,它们与 buildTools 和支持lib。但它只会给出警告。有时由于这个错误它不会生成签名的apk,所以最好使用相同版本的支持lib。
    【解决方案4】:
    compile 'com.android.support:appcompat-v7:23.0.3'
    

    会更好。

    【讨论】:

    • 为什么 23.0.3 比 23.4.0 更好?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-16
    • 2018-09-03
    • 1970-01-01
    • 1970-01-01
    • 2018-04-11
    • 1970-01-01
    相关资源
    最近更新 更多