我用的是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。这个工作

其他回答

进入Android Studio设置→Android SDK→SDK工具→。在列表中选中“谷歌Play licensing”和“Apply”。

它会下载一个文件,然后同步你的项目,这就完成了。

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)。 适用。

首先,我在Android Studio 4.2.2中遇到了这个问题,你不需要将SDK构建工具从31降级到30或更改编译SDK版本。

主要问题是SDK构建工具31中缺少两个文件:

dx.bat dx.jar

解决方案是,这些文件在文件位置中命名为d8,因此将其名称更改为dx将解决这个错误。

步骤如下。

对于Windows

去地点 “C: \ \用户当地\ AppData \ \ Android用户\ Sdk \构建工具\ 31.0.0” 找到一个名为d8.bat的文件。这是一个Windows批处理文件。 重命名d8.bat为dx.bat。 在lib文件夹(“C:\Users\user\AppData\Local\Android\Sdk\build-tools\31.0.0\lib”) 将d8.jar重命名为dx.jar

记住AppData是一个隐藏文件夹。打开隐藏项以查看AppData文件夹。

适用于macOS或Linux

在终端运行如下命令:

# change below to your Android SDK path
cd ~/Library/Android/sdk/build-tools/31.0.0 \
  && mv d8 dx \
  && cd lib  \
  && mv d8.jar dx.jar

现在运行您的项目。

Mac的解决方案与Windows非常相似,但从Windows的解决方案中还不能完全得出结论。路径和文件名不同,但问题基本上是相同的。

打开终端应用程序并键入下面的命令 在输入执行命令的每个命令行之后按Enter 输入cd /Users/admin/Library/Android/sdk/build-tools/ 注意:您的用户目录名称可能与“admin”不同 导航到相应的版本:键入cd 31.0.0 输入cp d8 dx 输入cd lib 输入cp d8.jar dx.jar

这修复了我在macOS v10.13.6 (High Sierra)上的问题。

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