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

android-ndk - build alljoyn sample chat failed on android

I want to use the NDK to build the sample application chat (cpp version) of alljoyn on android. But I got the error undefined reference to 'typeinfo for ajn::BusObject'. And I have checked the alljoyn library path and I could find the libajdaemon.a and liballjoyn.a. The NDK version is r9c. The alljoyn android SDK version is 3.4.6. Can someone help me? Thanks!

The detail information is following: /Volumes/MacintoshHD/Users/wshu_cn/android-ndk-r9c/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-g++ -Wl,-soname,libChat.so -shared --sysroot=/Volumes/MacintoshHD/Users/wshu_cn/android-ndk-r9c/platforms/android-17/arch-arm ./obj/local/armeabi/objs-debug/Chat/Chat_jni.o ./obj/local/armeabi/libstdc++.a -lgcc -no-canonical-prefixes -Wl,--no-undefined -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -L/Volumes/MacintoshHD/Users/wshu_cn/android-ndk-r9c/platforms/android-17/arch-arm/usr/lib -L/Volumes/MacintoshHD/Users/wshu_cn/android-ndk-r9c/platforms/android-8/arch-arm/usr/lib -L../..//lib -L/Volumes/MacintoshHD/Users/wshu_cn/android-ndk-r9c/sources/cxx-stl/gnu-libstdc++/libs/armeabi -L/Volumes/MacintoshHD/Users/wshu_cn/android-ndk-r9c/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi -L./libs ../..//lib/BundledDaemon.o -lajdaemon -lalljoyn -llog -lz -ldl -lssl -lcrypto -lm -lc -lstdc++ -lgcc -lgnustl_static -lstdc++ -lc -lm -o ./obj/local/armeabi/libChat.so /Volumes/MacintoshHD/Users/wshu_cn/android-ndk-r9c/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi/objs-debug/Chat/Chat_jni.o: in function typeinfo for ChatObject:Chat_jni.cpp(.data.rel.ro._ZTI10ChatObject+0x8): error: undefined reference to 'typeinfo for ajn::BusObject' collect2: ld returned 1 exit status

0 投票
1 回答
1310 浏览

android - 如何将我的 Android.mk 编译配置为默认导出所有符号以仅用于调试构建?

我的应用程序中有一个本地共享库 (.so),我想在其上运行单元测试。特别是,我的 . 中有几个函数,所以我想直接从我的单元测试中调用。但是,我不希望这些功能在发布版本中可见。

我目前计划这样做的方式是在构建调试时删除 -fvisibility=hidden 编译选项(NDK_DEBUG=1)。但是,我似乎无法从 Android.mk 文件中弄清楚如何做到这一点。

这是我当前的 Android.mk(有点简化):

谢谢!

0 投票
0 回答
4985 浏览

android - 执行 ndk-build 时出错-“未知类型名称 'time_t'”

我已经尝试使用 JNI 的 HelloWorld 应用程序,它工作正常。然后我修改它有一个头文件: custom_header.h 的内容是

HelloJNI.c 的内容是

当我在 /home/sattu/workspace_jni/AndroidHelloJNI/jni 目录中执行“ndk-build”时出现以下错误

会错过什么?

0 投票
1 回答
1307 浏览

android - 解决 Android makefile 中的循环依赖

我们正在开发一个项目,我们需要从静态库创建一个共享库。我们面临的问题是静态库包含循环依赖。以下是我的 makefile 示例:

当我给出 ndk-build V=1 时,我可以在输出中清楚地看到 -Wl,--start-group 和 -Wl,--end-group 在要创建共享库时从编译中删除。那么是否还有其他明显的标志而我错过了相同的标志?

我在 Windows 7 64 位上使用 NDK R9。

0 投票
0 回答
2032 浏览

android - alsa-utils + ndk-build 不工作

我有来自http://www.alsa-project.org/main/index.php/Main_Page的源代码 alsa-utils-1.0.27.2 我需要将它构建到我的 android:

user@vbUbuntu1204:~/Android-alsa/alsa-utils$ cat jni/Android.mk

user@vbUbuntu1204:~/Android-alsa/alsa-utils$ cat jni/Application.mk

用户@vbUbuntu1204:~/Android-alsa/alsa-utils$ ../../android-ndk-r9d/ndk-build

/home/user/android-ndk-r9d/build/core/build-all.mk:89:Android NDK:警告:此项目中没有要构建的模块!

如何纠正这个?

0 投票
3 回答
5830 浏览

android - Android NDK 构建,方法无法解析

我有一个带有本机代码的 Android 项目。我可以通过调用ndk-build命令从命令行构建本机代码,而不会出现错误或警告。但是当我在 ADT 中打开它时,它会显示以下错误。

在此处输入图像描述

错误信息:Method CallStaticIntMethod could not be resolved.项目中有很多文件有类似的错误。

我仔细检查了配置,这就是我所拥有的。Android 构建、工具链和包含已正确配置(见下图)

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

所需的包含在项目资源管理器中也可见并且它们是有效的(不是空的并且指向正确的头文件)。

在此处输入图像描述

但是当我Clean的项目和Build它时,错误仍然存​​在。关于如何解决这个问题的任何想法?

配置:ADT 22.6.2、NDK r9d(64 位)、OSX 10.9.2

0 投票
1 回答
3636 浏览

android-ndk - 警告:覆盖目标 Android Makefile 的命令

我在使用 NDK r9d 构建 C++ 代码时遇到问题,因为我尝试使用 C++ 编译器 (G++) 编译 C 文件,因此收到以下警告:

在我不需要用 C++ 11 编译并且我的 C 文件是用 GCC 编译之前,我没有任何问题,但是因为我有LOCAL_CPP_EXTENSION := .cpp .c,所以出现了这个警告(仅适用于 C 文件)。

我发现其他人也有同样的问题(Overriding commands for target Android Makefile)但没有得到任何答案。

这是我的文件:

我使用 NDK r9d 并在激活 G++ 4.8 和 C++ 11 的情况下进行编译。谢谢你的帮助。

0 投票
1 回答
1036 浏览

android - Android ndk-build 错误 make.exe: *** create_child_process: DuplicateHandle(In) failed (e=6)

我对 Android 比较陌生,使用 ndk-build 命令时遇到问题。我在 Windows 7 64 位下使用 NDK r9d。

当我运行创建我的 Android 项目(makefile 等)的构建系统,然后创建一个运行 ndk-build.cmd 的进程(我检查它是否在 Android 项目中调用)时,我收到错误:

make.exe: *** create_child_process: DuplicateHandle(In) 失败 (e=6)

但是,当我在由我的构建系统(或任何 Android 项目)创建的同一个 Android 项目中的 Windows 命令控制台中“手动”运行 ndk-build.cmd 时,一切正常。

我确实在这里找到了一些相关的问题:

https://www.ibm.com/developerworks/community/forums/html/topic?id=77777777-0000-0000-0000-000014825836

https://cygwin.com/ml/cygwin/2004-09/msg01506.html

但是我发现要么是make版本的问题,这不是(我认为)因为ndk-build在我“手动”使用它时工作正常,要么它说它与stdin处理有关,我不认为就是这里的问题。加上我发现的所有答案都与类似的错误有关,但并不完全相同:

process_easy: DuplicateHandle(In) 失败 (e=6)

也许有人知道我的错误信息的含义。我不认为这是特定于 Android ndk-build 但也许。

感谢您的阅读(对于任何英语错误,我深表歉意,我是法国人,英语不流利)

0 投票
1 回答
4475 浏览

android - 如何通过 Ndk-build 静态构建可执行文件?

我正在尝试在windows中构建一个静态链接android系统库的可执行文件,我使用以下命令:

有时可能需要添加选项:

输出文件是我构建后想要的。
但是,如果我想通过ndk-build构建可执行文件,请使用jni\Android.mkjni\Application.mk,哪个选项:

我应该追加,我应该选择哪个.mk文件?
我尝试添加:</p>

进入jni\Andorid.mk,但输出没有改变。

如何解决.mk问题?

0 投票
1 回答
1841 浏览

android - 在 Eclipse for Android NDK 项目(Mac) 中包含 c++ 头文件

我正在开发一个 Android NDK 项目,在该项目中我必须使用需要 c++ 头文件的功能,例如iostream,sstream等。我已经通过添加选项卡在 linux/usr/include/c++/4.7..中做到了这一点。C++ Paths & Symbols但仍然找不到在 Mac 中执行此操作的方法。我尝试了以下方法:

  • 我只是简单地包含了 iostream 标头#include<iostream>,它在使用 ndk-build 构建时显示以下错误,fatal error: iostream: No such file or directory

  • 添加android-ndk-r9/sources/cxx-stl/gnu-libstdc++/4.8/include在 中C++ Paths and Symbols->Includes tab->cpp,它不会改变任何东西。

  • 在我的 Android.mk 文件中,

    它给出了以下错误:

    致命错误:bits/c++config.h:没有这样的文件或目录

    我也尝试在 Android.mk 文件中添加预构建的共享库,这给出了同样的错误。

  • 然后搜索文件bits/c++config.h,将其复制到它正在寻找的实际位置,它显示相同的错误osdefines.h,我已经复制了它正在寻找的所有文件,最后它要求bits/memoryfwd.h,但我找不到文件在我的 Mac 中的任何位置。

这里的实际问题是什么?我应该怎么做才能在我的 Android NDK 项目的 cpp 文件中包含这些标头?