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


当前回答

仅从Android Studio卸载Build-Tools 31.0.0

Navigate to:
Configure -> SDK Manager -> SDK Tools [tab] -> Show Package Details [check box]
click on Android SDK Build-Tools 31
uncheck 31.0.0
and Hit OK

其他回答

如果你使用的是Mac电脑,并删除了构建工具31/32并重新安装,但仍然不能工作:

试着重新启动你的Mac。我刚刚这么做了,它解决了我所有的问题。

我从https://android.googlesource.com/platform/dalvik/+/master/dx/etc/dx.bat下载了dx.bat文件。

我把它放在\build-tools\31.0.0中,然后下载了dx.jar文件(根据我得到的错误消息,该文件也丢失了) 从http://www.java2s.com/Code/Jar/d/Downloaddxjar.htm。

我把它放在目录\build-tools\31.0.0\lib。

然后就成功了。

对于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中正常运行。

更改您的Gradle构建从:

android {
    compileSdkVersion 31
    buildToolsVersion '31.0.0'

    defaultConfig {
        applicationId "com.example.eg"
        minSdkVersion 23
        targetSdkVersion 31
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

to:

android {
    compileSdk 31

    defaultConfig {
        applicationId "com.example.eg"
        minSdk 23
        targetSdk 31
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

这是可行的。

仅从Android Studio卸载Build-Tools 31.0.0

Navigate to:
Configure -> SDK Manager -> SDK Tools [tab] -> Show Package Details [check box]
click on Android SDK Build-Tools 31
uncheck 31.0.0
and Hit OK