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


当前回答

我首先遵循user16475264的答案,但真正的问题(至少在我的情况下)是AGP (Android Gradle Plugin)的版本。所以,在升级到v7之后,我回滚了我对可执行文件和JAR文件的更改:dx -> d8 in ~/Library/Android/sdk/build-tools/31.0.0。这个工作

其他回答

更改这些设置后,它似乎可以正常工作。我从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"
    }

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

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

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

我首先遵循user16475264的答案,但真正的问题(至少在我的情况下)是AGP (Android Gradle Plugin)的版本。所以,在升级到v7之后,我回滚了我对可执行文件和JAR文件的更改:dx -> d8 in ~/Library/Android/sdk/build-tools/31.0.0。这个工作

仅从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

对于那些正在使用Azure DevOps并需要30.0.3版本的人来说,你需要卸载31.0.0版本

我将此添加到我的管道中,以使我的构建再次工作。

  - bash: |
      $ANDROID_SDK_ROOT/tools/bin/sdkmanager --uninstall 'build-tools;31.0.0'

环境变量$ANDROID_SDK_ROOT在预设变量中