meteor run android 失败并出现错误“安装的构建工具修订版 31.0.0 已损坏。”

Posted

技术标签:

【中文标题】meteor run android 失败并出现错误“安装的构建工具修订版 31.0.0 已损坏。”【英文标题】:meteor run android fails with error "Installed Build Tools revision 31.0.0 is corrupted." 【发布时间】:2021-10-27 21:19:02 【问题描述】:

我在 Ubuntu 20.04 上运行 Meteor 2.3.5。我正在学习 Cordova: How to build mobile apps using Meteor's Cordova integration. 上的教程,使用来自 official tutorial 的简单 ToDo 应用程序。

我相信我已经正确安装了 JDK 16.02、android Studio 和 Gradle。

当我运行meteor run android时,第一部分是成功的:

meteor run android
[[[[[                                         
/media/blackslate/316cbcf3-018d-4506-83b3-5666b5f788cd/blackslate/Repos/Meteor/Tutorial
]]]]]

=> Started proxy.                             
=> Started HMR server.                        
=> Started MongoDB.                           
Checking Java JDK and Android SDK versions   |
ANDROID_SDK_ROOT=/home/blackslate/Android/Sdk (recommended setting)
ANDROID_HOME=/home/blackslate/Android/Sdk (DEPRECATED)
Using Android SDK: /home/blackslate/Android/Sdk
   Starting app on Android Emulator          |
> Connecting to Daemon
=> Started your app.                          

BUILD SUCCESSFUL in 1s

然后我会看到一长串警告和映射,类似于以下内容:

...
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/sys-img2/02 to old ns http://schemas.android.com/sdk/android/repo/sys-img2/01
Mapping new ns http://schemas.android.com/repository/android/common/02 to old ns http://schemas.android.com/repository/android/common/01

...

最后,我看到一个错误:

Build-tool 31.0.0 is missing DX at /home/blackslate/Android/Sdk/build-tools/31.0.0/dx

FAILURE: Build failed with an exception.     /

* What went wrong:
Could not determine the dependencies of task ':app:compileDebugJavaWithJavac'.
> Installed Build Tools revision 31.0.0 is corrupted. Remove and install again using the SDK Manager.

以下步骤没有解决了这个问题:

我打开了 Android Studio,点击了 Projects 窗格中的 More Action 链接,然后选择了 SDK Manager。这将打开一个名为“新项目设置”的窗口。 我取消选择了 Android 12 Preview (S) 31 和 Android 11.0 (R) 30,因此只选择了 Android 10.0 (Q) 29 在终端窗口中,我运行meteor remove-platform android,然后运行meteor add-platform android 我再次运行meteor run android,结果相同。

在 Google 中搜索字符串 Installed Build Tools revision 31.0.0 is corrupted. Remove and install again using the SDK Manager. 会弹出像 this 这样的网站,如果您在自己的 Java 项目中工作时出现问题,这些网站会提供如何解决问题的说明。

在使用 Meteor 2.3.5 时,我可以采取哪些步骤来解决这个问题?

【问题讨论】:

我觉得31.0.0有问题。删除它并使用 30.0.3 它应该可以工作 问题可以解决,正如@eltoro0815 的回答和我对它的评论所示。 【参考方案1】:

https://***.com/a/68430992/12547951

(...)

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

    dx.bat dx.jar

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

步骤如下。

    前往该地点

     "C:\Users\user\AppData\Local\Android\Sdk\build-tools\31.0.0"
    

    找到一个名为 d8.bat 的文件。这是一个 Windows 批处理文件。

    将 d8.bat 重命名为 dx.bat。

    [将 d8.jar 更改为 dx.jar 后][1] // 现在将 d8.jar 重命名为 dx.jar

    它将在以下位置:

     "C:\Users\user\AppData\Local\Android\Sdk\build-tools\31.0.0\lib"
    

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

(...)

我没有复制这些文件,而是创建了符号链接。这可以从命令行轻松完成:

mklink %ANDROID_HOME%\build-tools\31.0.0\dx.bat %ANDROID_HOME%\build-tools\31.0.0\d8.bat && mklink %ANDROID_HOME%\build-tools\31.0.0\lib\dx.jar %ANDROID_HOME%\build-tools\31.0.0\lib\d8.jar

虽然它仍然是一种解决方法,但最干净。

(...)

【讨论】:

eltoro815 的答案对于 Windows 可能是准确的,但问题是关于 Ubuntu。 Another answer 来自复制他们的答案的同一页面更有帮助。在 Ubuntu 中,~/Android/Sdk/build-tools/31.0.0/ 的文件被称为普通的d8(没有扩展名)。需要重命名的jar 文件位于Android/Sdk/build-tools/31.0.0/lib/d8.jar。通过这些更改,meteor run android 命令可以正常工作。

以上是关于meteor run android 失败并出现错误“安装的构建工具修订版 31.0.0 已损坏。”的主要内容,如果未能解决你的问题,请参考以下文章

react-native run-android失败,出现“Task:app:compileDebugJavaWithJavac FAILED”安装后的react-native-fbsdk

android目标:android:命令失败,退出代码为enoent Meteor

android studio Run java的main方法失败

android studio Run java的main方法失败

android studio Run java的main方法失败

android studio Run java的main方法失败