问题标签 [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.
android - 找不到命令 NDK
我正在使用 ubuntu 并尝试构建一个项目,并且我正在使用以下代码:
当我键入 ndk-build 时,它返回找不到命令。它返回未找到命令。我提取了 ndk bin 文件并将其设为文件夹。请帮帮我。
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 构建
但我什至不调用这些函数。编译没问题,有一些警告。如何调试它?
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 架构)编译并在两者上运行。
任何帮助都非常感谢!
谢谢 !
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 构建器吗?
提前致谢 !
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 下,它们不见了!?他们都去哪里了?
java - UnsatisfiedLink 错误:找不到本机方法 findLibrary 返回 null
我正在研究与 android JNI 和 NDK 相关的 android 项目。我已经加载了项目所需的所有 .so 文件。但它仍然显示错误UnsatisfiedLink 错误,未找到本机方法,findLibrary retuned null,java.lang.Runtime,
我的日志图像如下
从图像中可以清楚地看到。添加了库,但为什么会出错?
还有一个文件在 Utilities.java 文件中声明了本机函数
我的代码是
本机代码:
这是我由 javah -jni 生成的 .h 文件
这是我的 Android.mk 文件代码
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?
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:
- The
libs
atjniLibs
. ie../app/src/main/jniLibs/armeabi*
- The
obj
under one of the build folders. ie.build
[1] orbuild
[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.
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'' 出现问题
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/armeabi
apk 的文件夹中。