- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我是 Bitbucket Pipelines 的 CI 新手目前正在this article 的帮助下建立管道.由于此错误,我的构建失败
"No toolchains found in the NDK toolchains folder for ABI with prefix: aarch64-linux-android"
谁能帮我解决这个问题?
最佳答案
今天我遇到了和你一样的问题。我也关注了blog post你提到的。任何。我很高兴向您报告:我已修复它并找到了“解决方案”! 😄
有趣的是:解决方案如此简单。你唯一要做的就是到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
小号 android-build-environment
install the NDK为你。
我找到了一些答案 - 例如 here - 再次单独安装 NDK。但我想到了以下问题:如果我的项目不使用 NDK,我为什么要安装/更新它?所以我尝试删除 NDK 文件夹(根据 Dockerfile
位于 /usr/local/android-ndk
),一切正常🎉。
为什么 unset
然后呢?
您无法删除 android-ndk
dir 因为您无权执行此操作。但是您可以从中删除内容。这就是它与 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
没有维护(一年后没有更新)无论如何我不会花太多精力来修复图像......
Note: The link to the
uber:android-build-environment
GitHub page refers to a single (currently the last) commit. If someone read that in the future the link is still active and correct but maybe themaster
branch have changed.
关于android - Bitbucket 管道 : No toolchains found in the NDK toolchains folder for ABI with prefix: aarch64-linux-android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44079559/
我是 Linux 系统编程新手,在阅读时遇到了 API 和 ABILinux系统编程。 API定义: An API defines the interfaces by whichone piece o
ABI 标准中与内存布局相关的规范是否通常仅适用于 ABI 边界,或者也适用于例如在翻译单元中,或者如果不是这种情况,编译器通常会做出这样的额外保证吗? 如果“一般”太宽泛,请考虑例如带有 Syste
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 6 年前。 Improve this qu
当我尝试使用调试配置在 QtCreator 中运行我的项目时,出现以下错误: 我什至不知道 ABI 是什么。我应该检查哪些设置?可能出了什么问题? 这是我的“桌面”配置: 当我将其悬停时,QtCrea
什么是 ABI,为什么 C++ 没有标准的 ABI,如果有它为什么重要? 最佳答案 ABI 是一个 Application Binary Interface .它描述了如何组织和访问应用程序二进制文件
Fatal Error: Mismatch between the program and library build versions detected. The library used 3.0
我上次在 Android Studio 中将 NDK 版本升级到最新版本后遇到了这个问题。我还找到了解决此问题的解决方案。如果有人有这个问题,我希望这是对你最好的问题和答案。请检查我的答案。 最佳答案
是否可以在没有源代码的情况下获取已知合约地址的ABI? 我发现的唯一方法是使用 etherscan 的 API,但它仅适用于经过验证的合约。 最佳答案 简单的回答:不 长答案:也许吧。 ABI 是从源
不解决 C++ 某些问题的常见解释是它会破坏 ABI 并需要重新编译,但另一方面,我遇到了这样的语句: Honestly, this is true for pretty much all C++ n
我想知道 C 头文件和 ABI 之间的关系。各种类型的大小是体系结构甚至依赖于编译器的。那么如何才能可靠地链接到 C 库呢? 对于一个更具体的问题:当使用 Haskell 的 FFI 时,甚至只使用像
关闭。这个问题需要更多 focused .它目前不接受答案。 想改进这个问题?更新问题,使其仅关注一个问题 editing this post . 4年前关闭。 Improve this questi
问题: 在使用 Android Studio 时,我无法在 HTC One M7 或任何模拟器上安装我的应用程序。在升级到 5.0.2(从 4.4?)之前,它运行良好。我收到的错误消息是 INSTAL
前言:这个问题已经过时了。 在创建 Android 虚拟设备 (AVD) 时,可以选择 CPU/ABI。我已经尝试了所有可用的目标——除了 ARM 别无选择。我的目标是 Android 3.2。 我假
标题说明了一切。我将向具有默认值的类的成员函数添加一个参数。该参数属于非平凡类型。这会破坏 ABI 吗?假设我的新库版本将是 M.m.0,它应该可以作为所有使用 M.m-1.x 的链接应用程序的直接替
我有一个配置探测器,它根据平台和版本确定要传递给 g++ 的标志。我通常使用比 native 安装版本更高版本的 gcc,以便访问 C++14 功能。在较旧的平台上,这意味着我需要添加 -D_GLIB
我看到很多关于 C++ 没有标准 ABI 的讨论,就像 C 一样。我很好奇究竟是什么问题。到目前为止,我想出了 名称修改 异常处理 RTTI 还有其他与 C++ 相关的 ABI 问题吗? 最佳答案 在
我正在使用 ethers-rs 编写一个 defi 应用程序。我需要计算 Rust 中的 CREATE2 地址。我在 Rust 中找不到与 abi.encodePacked(token0, token
尝试使用此 setup.py 从空项目创建轮子: 设置.py from setuptools import setup setup(name='bla', version='1') 我调用 pytho
使用 Android Gradle Experimental 插件版本 0.9.1。我需要为每个 ABI 设置不同的静态库搜索路径,有什么方法可以实现吗? 这里是 build.gradle fragm
假设我们有一个接受或返回某种标准类的共享库: //lib.h #include std::vector returnSomeInts(); //lib.cpp #include "lib.cpp"
我是一名优秀的程序员,十分优秀!