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方法失败