问题标签 [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 投票
1 回答
76 浏览

java - 未找到 Android NDK 发布构建方法

我对原生 Android 库有一点问题。我正在从本机代码中调用一个方法,如下所示:

当我在调试模式下构建我的应用程序时,我对此没有任何问题。但是当我在发布模式下构建时,我得到一个错误:

会不会是 Android Studio 混淆了 Java 代码,而我的本机库再也找不到方法了?我的问题是什么?

0 投票
0 回答
231 浏览

android - 使用 ndk 编译后的 Android Studio SQLite 导入

我必须用 ndk-build 编译 SQLite。我正在使用此文档https://www.sqlite.org/android/doc/trunk/www/index.wiki

我在 app/ 中有文件夹 JNI,在 /app/src/ 中有 org/ 文件夹

应用程序/

在 app 文件夹中运行 ndk-build 后,它构建没有错误,但自编译 SQLite 需要更改 SQLite 的导入(从 android.* 到 org.*),例如:

Android Studio 无法识别 org.sqlite 命名空间导入。

如何修复从 org.sqlite 导入以被 android studio 识别?

编辑:ndk-build 的输出

0 投票
0 回答
58 浏览

android - ndk-build 未被识别为内部或外部命令

我知道这是一个重复的问题,并且已经被问了数百次。但是即使在将 NDK 文件夹路径添加到系统变量路径后也会发生此错误。如果有人对此有任何想法,请告诉我。

0 投票
1 回答
1795 浏览

android-ndk - 如何在 .so 文件中查找文本重定位?

当我尝试在 Android 6 上运行我的 .so 文件时,我收到了以下消息:

从消息中我可以了解到我的 .so 文件中有文本重定位。使用 -fPIC 编译没有帮助,因为文本重定位位于我用来优化某些计算的汇编文件中。如何知道源代码中文本重定位的确切位置?

0 投票
0 回答
40 浏览

android - 两个 Android.mk 使用相同的 cpp 文件,有什么办法让另一个 Android.mk 不重新编译?

我有两个项目:

两个项目使用相同的cpp文件,但是当我构建jni时,他们在project1/project2中创建了两个obj目录,有什么办法让另一个项目不再编译?

0 投票
1 回答
2825 浏览

android - 无法运行 React-Native UIExplorer 示例项目

我一直在尝试在 Windows 上运行 UIExplorer 项目。我收到以下错误-

有没有机会克服这个问题?

0 投票
1 回答
919 浏览

android - Android.mk PREBUILT_SHARED_LIBRARY 如何从脚本生成 LOCAL_SRC_FILES 文件?

我有一个 NDK 项目,我在其中使用交叉编译器和标准 gnu make utils 构建共享库。这是通过单独的脚本完成的。但是为了在我的项目中使用库,我希望我的Android.mk进程调用我的脚本来生成共享库(如果它尚未构建),然后使用该进程Android.mk包装它。PREBUILT_SHARED_LIBRARY

目前,如果我离线运行我的脚本来生成libmy_so.so,那么下面的 makefile 将起作用。但是,如果我不先显式运行脚本,则会收到以下错误:

Android NDK: ERROR:/path_to_project/Android.mk:my_module: LOCAL_SRC_FILES points to a missing file

而且我的脚本永远不会被调用,因此在尝试解决依赖关系之前,make 过程就失败了。

有一个干净的解决方案吗?我什至可以自动运行脚本作为预处理步骤(如果文件已经存在,我总是可以让我的脚本安静地退出),但我还没有找到允许LOCAL_SRC_FILES变量指向不存在的文件的咒语。我考虑过放置一个假人libmy_so.so开始,但这是一个丑陋的黑客。

0 投票
1 回答
11077 浏览

android - java.lang.UnsatisfiedLinkError: JNI_ERR 从 JNI_OnLoad 返回

我正在开发一个包含本机代码的 android 应用程序

首先我编译一个预建库。Android.mk 文件是project_path/jni/qt-library/Android.mk

然后我编译我的库,其 Android.mk 文件是project_path/jni/my-library/Android.mk

当我使用 ndk-build 脚本编译 jni 文件夹时,一切正常,但调用时出现以下错误:

请注意,我解压缩了 apk 文件夹和每个库:libQt5Core.so、libmyLibrary.so 和 libgnustl_shared.so在 lib/armeabi/ 和 lib/armeabi-v7a/ 文件夹中

我的 Application.mk 文件如下所示:

我真的不明白错误的含义以及系统为什么尝试在application_package_name/lib/ arm文件夹中加载库。这个文件夹是否真的存在,或者在我的情况下这只是 armeabi 和 armeabi-v7a?

预先感谢您的帮助

0 投票
1 回答
871 浏览

makefile - Android 通过 makefile 为 APP_ABI 中提到的每个平台运行 shell 脚本

我有一个为 x86、armeabi 和 armeabi-v7a 平台构建的 Android 本机应用程序。现在取决于平台是 x86 还是 arm,我需要使用相应的参数相应地运行脚本,以便设置适当的第三方工具环境变量。我试着在下面做:

但问题是,当解析生成文件时,这些脚本会在初始阶段本身运行 3 次,而不是在每个平台开始编译之前。有没有办法解决这个问题,以便在每个平台的编译开始之前运行脚本?谢谢。

使用 Android.mk 文件更新

0 投票
3 回答
9296 浏览

android-ndk - Android - NDK 集成已弃用错误

我正在尝试从 github 导入一个名为 android-netspoof 的项目,我是 NDK 平台工具的新手,我不知道。我已经下载了 NDK 并解压了 zip ,并在环境变量中添加了路径。我想导入该项目进行学习,但出现此错误,Error:(12, 0) Error: NDK integration is deprecated in the current plugin. Consider trying the new experimental plugin. For details, see http://tools.android.com/tech-docs/new-build-system/gradle-experimental. Set "android.useDeprecatedNdk=true" in gradle.properties to continue using the current NDK integration. <a href="openFile:C:\Users\Shreyash-2107\Desktop\android-netspoof-1.9.01111111\app\build.gradle">Open File</a>请帮助我导入该项目。