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


当前回答

我从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。

然后就成功了。

其他回答

这里有太多错误和误导性的答案。

如果你使用的是Beta SDK,你唯一需要做的就是安装最新的Android Studio Beta版本。最新的Android Studio Beta支持最新的AGP,正确地支持SDK 31。

我在SDK管理器下选中31,单击Android 11.0(R)恢复到30,并更新Build Gradle(项目)将compileSdkVersion和targetSdkVersion从31更改为30。

我还必须将buildToolsVersion更新为“30.0.2”而不是30。现在它起作用了。

我还没有足够的声誉评论,但有一个解决方案与符号链接的Windows,我想补充说,它也适用于macOS。

这是Mac终端的命令:

ln %ANDROID_HOME%/sdk/build-tools/31.0.0/d8 %ANDROID_HOME%/sdk/build-tools/31.0.0/dx && ln %ANDROID_HOME%/sdk/build-tools/31.0.0/lib/d8.jar %ANDROID_HOME%/sdk/build-tools/31.0.0/lib/dx.jar

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命令行中更改版本。

在许多博客中,你会发现解决方案是降级到API 30,然而,如果你想尝试API 31,降级并不是一个真正的解决方案。幸运的是,有一种方法可以让构建工具为API 31工作。API 31构建工具崩溃的原因是2个丢失的文件:

dx.bat dx.jar

然而,这些文件以另一个名称存在,具体来说:

d8.bat d8.jar

因此,防止出现这种异常的变通办法是,复制上面提到的以新名称存在的文件,或者创建一个符号链接(Windows中的快捷方式),它就会神奇地工作。这将适用于所有的操作系统,但它的方式将取决于每个平台。

窗户 你可以手动或使用命令提示符,为dx.bat创建符号链接(记得用你的SDK目录替换):

mklink C:\Users\username\AppData\Local\Android\Sdk\build-tools\31.0.0\dx.bat C:\Users\username\AppData\Local\Android\Sdk\build-tools\31.0.0\d8.bat

和为dx.jar创建符号链接的命令:

mklink C:\Users\username\AppData\Local\Android\Sdk\build-tools\31.0.0\lib\dx.jar C:\Users\username\AppData\Local\Android\Sdk\build-tools\31.0.0\lib\d8.jar

在复制并重命名上述文件或运行前面的命令来创建符号链接(快捷方式)后,你将在build-tools和build-tools/lib目录下有两个新文件:

MacOS和Linux 如果你使用的是MacOS或Linux,在终端上运行以下命令就可以了(它会切换到构建工具目录,然后将d8移动到dx,将d8.jar移动到dx.jar):

cd ~/Library/Android/sdk/build-tools/31.0.0 && mv d8 dx && cd lib && mv d8.jar dx.jar

再次尝试在Android Studio中构建您的项目,异常不应该再出现了!