Tag: android ndk

在Android上运行NDK可执行文件时出现Magic 7F45错误

我创建了一个简单的Hello World C程序,使用ndk-build编译它,并通过adb传输它。 基本上我遵循了http://d34th4ck3r.wordpress.com/2011/06/18/how-to-run-c-cpp-code-in-android/中的步骤,除了GNUmake步骤(它似乎没有必要)因为我仍然得到我的二进制文件)。 但是,当我运行它时,我首先得到一个“无法执行:权限被拒绝”的错误。 使用chmod 777后,我收到了“不可执行:magic 7F45”错误。 请帮忙。 谢谢。

将C代码(netcat)编译为本机Android可执行文件

我正在编写一个使用Netcat通过网络连接提供帧缓冲的bash脚本,但首先我需要将其编译为本机可执行文件。 我甚至让这个脚本在Ubuntu机器上工作,默认安装netcat。 我发现这个https://github.com/android/platform_external_netcat但根本没有NDK经验。 这显然不会使用JNI或Java,因此制作Android应用程序的默认方法不会让我随处可见。 所以问题是。 如何从此源代码获取可执行文件?

如何在android项目中使用NDK?

我需要在我的项目中使用一些本机c / c ++,所以我需要使用NDK。 有没有一种简单的方法在eclipse中设置它? 谢谢。

ld选项-lrt引用什么库(Bionic libc)?

这个选项对ld意味着什么? -lrt 我知道在某种程度上它意味着ld正在寻找具有实时扩展的库,但是在广泛搜索之后,我找不到这是指的确切定义(或哪个库)。 使用Bionic(android)libc,android NDK docs详细说明了这个(以及pthreads)已经集成。 我问,因为它似乎是隐式的(即当我调用编译器时,直接调用自定义编译的gdc,我得到一条消息说ld找不到-lrt) 编辑 来自Bionic概述 Bionic的C库附带了自己的pthread实现。这与其他历史C库不同: – place it in an external library (-lpthread) – play linker tricks with weak symbols at dynamic link time 实时function(aka -lrt)的支持也捆绑在C库中。 问题是collect2将选项-lrt(以及-lpthreads)传递给ld。 dan@devbox:~/projects/gdc_test/jni/src$ $DC gdc_test.d -v -mthumb Using built-in specs. Target: arm-linux-androideabi Configured with: /arm/ndk-git/src/build/../gcc/gcc-4.4.3/configure –prefix=/arm/ndk-git/ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86 –target=arm-linux-androideabi –host=x86_64-linux-gnu –build=x86_64-linux-gnu –with-gnu-as –with-gnu-ld –enable-languages=c,c++ –with-gmp=/arm/ndk-git/build_run/temp-install –with-mpfr=/arm/ndk-git/build_run/temp-install –disable-libssp […]

Android使用C(ndk)从资产文件夹中读取文本文件

我需要从android中的资产文件夹中读取文本文件,通过在互联网上搜索,我发现有从android 2.3开始提供的asset_manager api。 由于我只针对平板电脑设备,因此这很有用。 但由于我不是C语言专家,我无法找到有关如何使用文件描述符读/写文件的任何示例。 我发现很多使用FILE *的例子(文件指针) 我的目标是解密资产文件夹中的js文件,该资源文件夹使用C加密(用于保护代码),因为如果最终用户反编译我的apk,则js代码可见。 因为资产文件夹在zip文件里面是可以的吗?

从调用堆栈中获取函数名称

我正在开发一个调用本机代码的Android程序。 该本机代码是segfaulting,因为通过android NDK进行调试并不是真的可行,所以我留下了一个如下所示的callstack(从ddms中捕获)。 我的问题是,在将callstack中的内存地址转换为函数名之后是否可以手动运行,以便我可以看到这是segfaulting的位置。 谢谢 02-22 14:47:39.231: DEBUG/dalvikvm(504): Trying to load lib /data/data/android.TestApp/lib/libDM.so 0x43b7c938 02-22 14:47:39.301: DEBUG/dalvikvm(504): Added shared lib /data/data/android.TestApp/lib/libDM.so 0x43b7c938 02-22 14:47:39.310: DEBUG/dalvikvm(504): No JNI_OnLoad found in /data/data/android.TestApp/lib/libDM.so 0x43b7c938 02-22 14:47:39.406: DEBUG/dalvikvm(504): +++ not scanning ‘/system/lib/libwebcore.so’ for ‘onLoadModel’ (wrong CL) 02-22 14:47:39.410: DEBUG/dalvikvm(504): +++ not scanning ‘/system/lib/libmedia_jni.so’ for ‘onLoadModel’ (wrong CL) 02-22 14:47:39.410: […]