我用的是Android Studio 4.2.2。我创建了一个新项目,还没有添加任何东西到启动器代码,每当我点击构建或运行,我得到这个错误:

已安装的构建工具版本31.0.0已损坏。使用SDK管理器删除并重新安装。

我看了其他帖子的建议,但这些解决方案都不起作用。以下是我的尝试:

SDK Manager → SDK Tools → check "Show package details", uncheck 31.0.0, and click "Apply" → Uninstall 31.0.0 → check 31.0.0 and reinstall it In SDK Manager, deselect 31.0.0 and try installing an older version (e.g., I've tried 30.0.3) and update "buildToolsVersion" in build.gradle to the installed version Went to Project Structure → Properties and verified that 31.0.0 is selected for "Build Tools Version" and "Compiled SDK Version" Manually remove the stuff in the build-tools folder; i.e., rm -rf /path/to/android/sdk/build-tools/31.0.0 (it doesn't end in "-rc" like some other posts have described) Restart Android Studio Reinstall Android Studio

我是一个Android新手,只是想设置一个Hello, World!项目,真的不应该这么难。


当前回答

检查你的Gradle构建:

android {
    compileSdkVersion 30
    buildToolsVersion "31.0.0" // Solution 1: // Downgrade it to 30.0.3

    defaultConfig {
        applicationId "com.mobiz.lottotemplate440"
        minSdkVersion 21
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

Or,

解决方案2

从SDK管理器下载SDK 31。

其他回答

遇到了同样的问题,并通过一些行更改解决了问题。

检查项目代码面板,并进入Gradle Scripts→build。gradle文件,

将三个位置从31更改为30:compileSdkVersion、buildToolsVersion和targetSdkVersion 您将注意到在修改后的线路上发生了灯泡撞击。单击,选择“sync [to version 30]”。Android Studio将自动下载BuildTool V30并更改项目设置。

现在运行应用程序,对我有用。

重点不是降低目标API级别,而是完全针对API级别31来准备和测试Android 12的应用程序!

看起来DX已经从SDK中移除,取而代之的是D8。

它看起来像Android Gradle插件4。X不知道这一点。

目前我只看到两个解决方案:

继续使用agp4。x,应该把DX从30.0.3复制到31.0.0 将AGP升级到7.x

你不需要指定android。Build Tools 27.0.3或更高版本的buildToolsVersion。

Build Tools 27.0.3或更高版本。记住,你不再需要 属性指定生成工具的版本 android。buildToolsVersion属性—插件使用最小值 默认为所需版本。

源(Developers.Android)

如果你仔细看日志,你会发现:

Build-tool 31.0.0在path-to-sdk\build-tools\31.0.0\ DX .bat中丢失DX

您可以尝试从以前的版本中复制它,但如果您必须告诉整个团队做同样的事情,并且在服务器管道上仍然失败,那么这就不太合适了。我在31.0.0-rc5发布时也遇到了这种情况。

在build.gradle(Module)文件中。修改以下设置。

android {
    compileSdkVersion 30
    buildToolsVersion "30.0.0"

    defaultConfig {
        applicationId "com.recycleview.mvvm"
        minSdkVersion 16
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }