问题标签 [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-studio - nativeLibsToJar 的魔力是什么
以下代码片段似乎是如何在 Android Studio 中包含本机库的答案:
它似乎只是将 *.so 打包到 *.jar 中。但我真的不明白:
- 为什么必须将它包装在 *.jar 中?
- 在我的本地库中更改某些内容时,我可以看到更改在我的应用程序中生效,而且 Gradle 构建过程始终输出“...:app:nativeLibsToJar UP-TO-DATE ...”。所以我假设这个任务不会重新运行。但是,当此任务将 *.so 包装在 *.jar 中时,如何在不重新运行此任务的情况下重新包装它们?
我感谢每一个解释:)
android-studio - Android NDK:如何重建 .APK 文件?
我正在从命令行(终端)在 Mac 上构建我的 NDK 项目。我能够编译和链接我的“libmain”,并且我一直在使用 Android Studio 在我的手机上安装构建的应用程序.. 或者至少我认为..
据我所知,当我运行 ndk-build 时,我的 .apk 文件根本没有改变。
这意味着即使我正在重新编译我的源代码,我的手机也会一遍又一遍地安装相同的损坏应用程序。
当我执行 ndk-build 时,上述 .apk 文件的时间戳永远不会改变。我猜Android Studio必须负责构建这些?
ndk-build 可以用来创建 .apk 文件还是我应该调用另一个实用程序来生成 .apk 文件?
我原以为 Android Studio 会检测到我的 libmain 输出发生变化并重建 .apk 文件,但我可能错了。
assembly - 使用 ndk-build 编译 gmp-6.1.0 源代码时出现 asm 错误
伙计们。我想为arm平台编译gmp源代码,我已经为它编写了一个android.mk文件(只是一些src文件和c-includes)。编译/mpf/sub.c文件时出现asm错误,失败,但我在 sub.c 文件中没有找到任何 asm 代码,输出如下:
我对asm知之甚少,谁能告诉我发生了什么以及解决它的方法?我会感激你所做的一切。
python - ndk-build 出现错误:平台的 LONG_BIT 定义出现错误(gcc/glibc 配置错误?)
我正在做交叉编译。我正在尝试 ndk 构建我的代码,当我包含Python.h时,它会导致错误LONG_BIT 定义对于平台(错误的 gcc/glibc 配置?)出现错误
我在网上找到了一些类似的案例,但问题仍然无法解决。是virtualenv的问题吗?它已经安装了一些关于 gcc 的东西。那么,有人会提出解决此问题的方法吗?
我正在使用 64 位 python 2.7。Python.h 来自 Kivy 的 python-for-android 项目。
错误:
安卓.mk
android - 为 opencv 非自由模块构建 ndk 时出错
我一直在尝试构建 opencv 非自由库一段时间,当调用 ndk-build 函数时,它会因此错误而中止
我已经学习了本教程:教程 - 第 1 部分:在 Android NDK 项目中使用 OpenCV 非自由模块(SIFT、SURF)
我还尝试了 Kornel 提供的解决方案:Kornel's solution for building nonfree
这是我的文件层次结构:app -> src -> main -> jni
这是我的 Android.mk 文件
我正在尝试使用为两者设置的 APP_ABI 构建 ndk:
x86 armeabi-v7a
linux - 如何使用 NDK 和 Android Studio 将 Linux .so 编译到 Android .so 平台
我已经安装了 Android Studio 并想使用 Linux .so 重新编译并使其成为 Android .so。
我四处搜索,所有示例都显示了一个现成的 .c 编译为 .so 并在 Android Studio 中重用该 .so。这不是我的情况,我只有没有 .c 文件的 Linux .so。
通过参考多个网站,我制作了一个 JNI 文件夹并将其与 gradle/build 文件夹或app\src\main 下的文件夹一起放置。它是OR,因为许多开发人员将它们放在任何一个位置。我不知道哪个是我尝试过的位置的正确版本,并且它没有对项目进行任何更改(没有生成 libs 文件夹)。
有人建议,由于平台差异,Linux .so 不能用于 Android .so,但也有人建议无需进一步解释或示例即可。
这里有人知道怎么做吗?
具体来说:
创建 JNI 文件夹及其位置的步骤(我知道如何创建 JNI 文件夹,只是不确定位置)
如何调用.so并编写代码重新编译它?(是否需要MainActivity,代码长什么样)
ndk-build 设置和路径/项目设置
谢谢。李
android-ndk - ndk-build 可执行文件未被识别为可执行文件
我只是尝试为一个简单的 hello 程序做一个 ndk-build。
Android.mk 文件:
应用程序.mk 文件:
源文件(hello.cpp):
ndk-build 成功:
但是在我将它推送到模拟器并尝试执行后,我收到了这个错误: /system/bin/sh: ./hello: not executable: 32-bit ELF file
使用 file 命令检查,它显示为: file libs/armeabi-v7a/hello libs/armeabi-v7a/hello:ELF 32 位 LSB 共享对象,ARM,EABI5 版本 1 (SYSV),动态链接,解释器 /system/bin /链接器,剥离
使用 readelf 检查: readelf --file-header libs/armeabi-v7a/hello
那么,我的设置有什么问题?就是想不通为什么。提前致谢。
android-studio - 我无法使用 NDK 编译电报源代码
我安装了 NDK 并在“项目结构”中设置了 NDK 路径:
然后我将以下代码添加到build.gradle
:
并将此代码添加到“ defauilConfig
”中build.gradle
:
当我尝试构建 APK 时,出现此错误:
错误:任务“:TMessagesProj:buildNative”执行失败。Process 'command 'C:\Users\Mehran\AppData\Local\Android\ndk\android-ndk-r12/ndk-build.cmd'' 以非零退出值 2 结束
这是消息控制台:
make (e=2): 系统找不到指定的文件。make: *** [D:/Mehran/AndroidStudioProjects/TelegramTest/TMessagesProj/obj/local/armeabi/objs-debug/tmessages.22/./opus/src/opus_encoder.o] 错误2 make: 离开目录`D: /Mehran/AndroidStudioProjects/TelegramTest/TMessagesProj/jni'
对不起,我的英语不好。
android - 为什么 ndk-build 会修改 prebuild so 库?
我在 Android JNI 项目的 prebuild 目录中使用了一些预构建的 so。预构建库的 Android mk 文件如下所示:
但是每次我运行时ndk-build -B
,在 libs/armeabi 中生成的so文件都会改变。所以我意识到 ndk-build 修改了 so 文件,而不是简单地复制它们。当我必须使用 git 等版本控制软件来管理这些 so 文件时,这很烦人,因为很难知道提交的版本是否与 prebuild 目录中的 so 一致。我可以让它们保持不变吗?