我用的是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!项目,真的不应该这么难。


当前回答

31.0.0版本本身已经损坏,我们需要降级到30。

我遵循同样的步骤:

打开项目结构→按Ctrl + Alt + Shift + S 进入模块→属性→*编译SDK版本:30构建工具版本:30.0.2 进入默认配置→目标SDK版本:30 应用并关闭。 菜单工具→SDK管理器 在我的情况下,取消选中API 31以卸载,并选中Android 11.0(R)以安装(30.0.3)。 适用。

其他回答

M1 Macbook解决方案:

前往终点站:

步骤1: cd ~ /图书馆/ Android / sdk /构建工具/ 31.0.0

步骤2: Mv d8 dx

步骤3: MV D8.jar DX.jar

步骤4:在Android studio中重建项目。或者简单地从android studio运行您的项目

注意,如果运行的版本不同于31.0.0,则在步骤1命令行中更改版本。

在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"
    }

尝试重新安装SDK 31并重新启动Android Studio,它应该可以工作。否则,从SDK管理器中,将SDK 30安装到系统中,并将应用构建Gradle文件配置为

compileSdkVersion 30
buildToolsVersion "30.0.0"
defaultConfig {
    targetSdkVersion 30
}

更改这些设置后,它似乎可以正常工作。我从SDK管理器下载了SDK 30版本。

android {
    compileSdkVersion 30
    buildToolsVersion "30.0.3"
    defaultConfig {
        applicationId "com.anurag.myapplication"
        minSdkVersion 23
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

对于CircleCI,在构建之前添加此步骤,因为在cimg/android:2022.08-ndk上默认情况下构建工具31不可用。

- run:
      name: Preinstall SDK 31, fix SDK 31 and 33 missing DX files
      command: |
        echo yes | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager "build-tools;31.0.0"
        cd $ANDROID_HOME/build-tools/33.0.0 && mv d8 dx && cd lib && mv d8.jar dx.jar
        cd $ANDROID_HOME/build-tools/31.0.0 && mv d8 dx && cd lib && mv d8.jar dx.jar

记住要指向cmdline-tools,这样sdkmanager才能在Java 11中正常运行。