问题标签 [ndk-build]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2986 浏览

android - 找不到命令 NDK

我正在使用 ubuntu 并尝试构建一个项目,并且我正在使用以下代码:

当我键入 ndk-build 时,它返回找不到命令。它返回未找到命令。我提取了 ndk bin 文件并将其设为文件夹。请帮帮我。

0 投票
0 回答
1095 浏览

android - Android NDK 应用程序在运行甚至未调用的函数时崩溃

我正在尝试构建一个基于 Miracl 加密库(C/C++)的 Android 应用程序。我已将他们的来源和我的来源添加到 jni 文件夹。并编写了对加载 shared_library 并返回字符串的函数的简单调用(不调用 c++ 函数,只返回一个字符串)。但是应用程序在运行 A/libc 时崩溃?致命信号 11 (SIGSEGV),代码 1,tid 17711 中的故障地址 0x0

在 Windows 7/x64 Android Studio 1.1.0 Android r10d NDK 上工作

我使用命令 ndk-build.cmd NDK_DEBUG=1 NDK_LOG=1 构建

但我什至不调用这些函数。编译没问题,有一些警告。如何调试它?

0 投票
2 回答
10040 浏览

android - NDK r10 b 32 位或 64 位或使用两者编译以及如何实现

当我使用 r10b 64 位生成器ndk 编译项目时,它编译得很好,没有任何问题

我能够在 Lollipop 中成功运行该项目,并且应用程序按预期运行

但是当我在运行时在 JellyBean 中运行项目时,出现以下错误

无法加载“/data/data/de.blinkt.openvpn/cache/pievpn.armeabi-v7a”所需的库“libopenvpn.so”;由soinfo_relocate(linker.cpp:987)引起:无法找到“libopenvpn.so”引用的符号“srandom”...无法链接执行

所以当我研究我发现它是由于使用 64 构建器和解决方案是使用 32 位构建器。

当我使用 32 builder 时,在编译过程中出现以下错误。

Android NDK:NDK 应用程序“本地”针对未知 ABI:arm64-v8a x86_64 Android NDK:请修复 ./jni/Application.mk
/Users/ShajilShocker/Documents/Android/NDK/android-ndk- 中的 APP_ABI 定义r10b/build/core/setup-app.mk:112: *** Android NDK: 中止。停止。

所以如果我省略 arm64-v8a 和 x86_64 那么它可能会编译但它似乎不会在 64 位设备上运行。

是否有可能我可以先使用 32 位(注释 64 架构)编译同一个项目,然后使用 64 位(取消注释 64 架构)编译并在两者上运行。

任何帮助都非常感谢!

谢谢 !

0 投票
1 回答
1454 浏览

android - 适用于 mac 的 NDK r10b 32 和 64 位生成器

这是 32 位 NDK r10b 构建器的链接

http://dl.google.com/android/ndk/android-ndk32-r10b-darwin-x86_64.tar.bz2

这是 64 位 NDK r10b 构建器的链接

http://dl.google.com/android/ndk/android-ndk32-r10b-darwin-x86_64.tar.bz2

两个 NDK 构建器似乎都是相同的,并且在 RELEASE.TXT 中都标记为r10b (64 位)

在此处输入图像描述

那么,我是在从错误的地方下载 NDK 构建器吗?

提前致谢 !

0 投票
0 回答
351 浏览

android - ndk-build 与 Lollipop

使用 ndk-build 在 Lollipop 上重建我的旧 C++ 模块会丢失关于 KEY_SOFT1、KEY_SOFT2、KEY_CENTER、KEY_END 的“未在此范围内定义”错误。这在 Android 4 上从未发生过。出了什么问题?

我的安卓.mk

我的应用程序.mk

更新

深入了解 android-15\input.h 下的 android-ndk\platforms 文件夹。我发现这些键定义为:

但是在 android-21\input.h 下,它们不见了!?他们都去哪里了?

0 投票
0 回答
455 浏览

java - UnsatisfiedLink 错误:找不到本机方法 findLibrary 返回 null

我正在研究与 android JNI 和 NDK 相关的 android 项目。我已经加载了项目所需的所有 .so 文件。但它仍然显示错误UnsatisfiedLink 错误,未找到本机方法,findLibrary retuned null,java.lang.Runtime,

我的日志图像如下

在此处输入图像描述

从图像中可以清楚地看到。添加了库,但为什么会出错?

还有一个文件在 Utilities.java 文件中声明了本机函数

我的代码是

本机代码:

这是我由 javah -jni 生成的 .h 文件

这是我的 Android.mk 文件代码

0 投票
2 回答
41664 浏览

android - How to use 32-bit native libraries on 64-bit Android device

I use a native library in my application that is only compiled for armeabi, armeabi-v7a and x86.

When this library is loaded on a 64-bit device like the Samsung S6, the application crashes with an UnsatisfiedLinkError

The library is closed source unfortunately. Is there any way to fix this without recompiling the library with 64-bit targets?

0 投票
5 回答
14261 浏览

android - Change ndk-build output locations

My app has the following structure

I am building my .so libraries with ndk-build command in a linux machine. I use it like:

The build process works fine and output files are produced with no errors.

My problem is that the result files are not "directed to the proper position"

The libs generated at :

and the obj files at :

I would like the output to produced in different locations:

  1. The libs at jniLibs. ie. ./app/src/main/jniLibs/armeabi*
  2. The obj under one of the build folders. ie. build[1] or build[2].

Is there any possible way to achieve that by changing some parameter to the .mk files or to the build command?


Edit

TARGET_OUT does not seem to work in NDK r6b

Executing command ndk-build -C Android/app/src/main/ TARGET_OUT='Android/app/src/main/jniLibs/$(TARGET_ARCH_ABI)'

Warnings as the following appear for each generated file.

0 投票
0 回答
57 浏览

ndk-build - AndroidStudio sdk1.3、ndk下如何配置项目在Win8.1上正确构建?

对于我尝试运行的任何项目,ndk-build 都以错误结束。我在 Windows 8.1 上使用带有 ndk-bundle 的 androidSDK 1.3 第二个空 .c 文件添加到 jni 文件夹;local.properties 显示 sdk 和 ndk 路径更正:

启动过程“命令 'ndk-build.cmd'' 出现问题

0 投票
1 回答
1932 浏览

android - 为什么我的 Android 应用程序查找 /data/app/package_name-1/lib/arm/libLibrary.so 而不是使用文件夹 armeabi

当我试图加载一个仅为 armeabi 编译的库时,我在 logcat 中得到了这个(假设它是所有 arm* abis 的后备)。

由于实际限制,我无法在有根设备上进行测试,所以我只知道该/data/data/package_name文件夹有一个符号链接lib -> /data/app/package_name-1/lib/arm

我知道这不是特定于设备的问题,因为我之前在同一设备上使用过本机库(使用不同的应用程序,但之前的架构相同)。

有人可以帮我吗?真的很困惑到底发生了什么。

我使用 gradle build (Android Studio),解压时 libLibrary.so 出现在lib/armeabiapk 的文件夹中。