作者:葉芯彤_613 | 来源:互联网 | 2023-02-03 14:09
如何解决《Bitbucket管道:在ABI的NDK工具链文件夹中找不到工具链,前缀为:aarch64-linux-android》经验,为你挑选了1个好方法。
我对Bitbucket Pipelines的 CI完全不熟悉,目前正在本文的帮助下建立管道.由于此错误,我的构建失败
"在带有前缀的ABI的NDK工具链文件夹中找不到工具链:aarch64-linux-android"
谁能帮我解决这个问题?
1> StefMa..:
今天我遇到了和你一样的问题.我也跟着你提到的博客文章.随你.我很高兴向您汇报:我修好了它并找到了一个"解决方案"!
有趣的是:解决方案如此简单愚蠢.您唯一需要做的就是unset
(或删除)NDK环境变量(或目录).
神奇的线条是:
- unset ANDROID_NDK_HOME
这意味着我的决赛bitbucket-pipelines.yml
看起来像:
image: uber/android-build-environment:latest
pipelines:
default:
- step:
script:
- unset ANDROID_NDK_HOME
- ./ci/accept_android_license.sh
- ./gradlew :app:testDebugUnitTest
为什么要解决这个问题?
老实说.我不知道 .但我发现uber
s会为你android-build-environment
安装NDK.
我找到了一些答案 - 比如这里 - 再次单独安装NDK.但我想到了以下内容:如果我的项目不使用它,为什么我应该安装/更新NDK呢?所以我试图删除NDK文件夹(根据Dockerfile
位于/usr/local/android-ndk
),一切正常.
为什么要unset
呢?
您无法删除android-ndk
目录,因为您没有权限执行此操作.但您可以从中删除内容.这就是它合作的原因rm -rf /usr/local/android-ndk
.但是 - 然后 - 设置ANDROID_NDK_HOME
但没有任何内容,你得到错误信息(建设时):
./gradlew :app:testDebugUnitTest
NDK is missing a "platforms" directory.
If you are using NDK, verify the ndk.dir is set to a valid NDK directory. It is currently set to /usr/local/android-ndk.
If you are not using NDK, unset the NDK variable from ANDROID_NDK_HOME or local.properties to remove this warning.
unset
环境变量也修复了该警告.
重要:
显然这不是最好的解决方案.如果您的应用程序使用NDK,此解决方案将无济于事.在CI
脚本中"从Docker镜像"中删除一些环境变量也不是最佳解决方案.也许图像后来需要变量(不知道在Docker中是否可行......但你知道我的意思).但它会"暂时"修复问题,因为android-build-environment
无论如何都没有维护(一年之后不更新)无论如何我都不会付出太多努力来修复图像......
注意:uber:android-build-environment
GitHub页面的链接指的是单个(当前最后一次)提交.如果有人在将来读取该链接仍然是活动且正确但可能master
分支已更改.