草庐IT

android - 如何使用 Android NDK 修复 Eclipse CDT 错误 "Function ' isdigit' 无法解析?

我在Android/NDK混合项目中使用EclipseIndigo。我添加了C++特性,几乎一切正常。自动构建工作;也就是说,当我编辑文件时,会调用ndk-build并成功完成-没有构建错误。鼠标悬停代码辅助工作(弹出有关该功能的信息的小窗口)。如果我将光标放在包含行上并按F3,则会打开一个相关的头文件(不是我根据我的配置期望的那个,而是一个相关的-也许是一个线索?)。如果我在.cpp文件中选择以下行,它会打开$NDKROOT/platform/android-3/arch-arm/usr/include/ctype.h:#include(isdigit在此文件中定义)但是,Eclip

Android ndk 8b 无法加载库

升级到ndk8b我收到了一些崩溃报告(其中大部分是GalaxySIIwithAndroid4.03)java.lang.UnsatisfiedLinkError:Cannotloadlibrary:reloc_library[1286]:1836cannotlocate'__gnu_thumb1_case_uqi'...atjava.lang.Runtime.loadLibrary(Runtime.java:370)atjava.lang.System.loadLibrary(System.java:535)atcom.iuculano.fplayer.SDLActivity.void

android - Android NDK 中的 C++11 std::async 不起作用

我试图让以下示例代码起作用,以了解异步编程是否在AndroidNDK中起作用。虽然NDK有STL被识别为标题,std::asyncisnotgettingrecognition没有得到认可。我尝试使用的代码如下:#include#includestructFoo{Foo():data(0){}voidsum(inti){data+=i;}intdata;};intmain(){Foofoo;autof=std::async(&Foo::sum,&foo,42);f.get();std::cout同时所有的包含路径都已设置到属性->路径和符号下的指定文件夹ErrorsDescriptio

android - NDK 如何在发布时删除 Log Debug 语句

我知道使用混淆器可以从发布版本中删除javaLog.d调试语句https://stackoverflow.com/a/13327603/1527440但是有没有办法从NDKC/C++代码中删除日志调试语句。我正在使用定义语句在NDK中调用它们#defineLOGD(...)__android_log_print(ANDROID_LOG_DEBUG,LOG_TAG,__VA_ARGS__) 最佳答案 使用NDEBUG宏。或者你真的可以在任何事情上#ifdef。#ifdefNDEBUG#defineLOGD(...)#else#defi

android ndk没有制定目标的规则

我意识到之前有人问过这个问题,但没有答案能够解决我的问题。我正在尝试构建一个随NDK提供的示例Android应用程序,它具有以下Android.mk文件:LOCAL_PATH:=$(callmy-dir)MY_PATH:=$(LOCAL_PATH)include$(callall-subdir-makefiles)include$(CLEAR_VARS)LOCAL_PATH:=$(MY_PATH)LOCAL_MODULE:=native-activityLOCAL_SRC_FILES:=main.cLOCAL_LDLIBS:=-llog-landroid-lEGL-lGLESv1_CM

android - 在 Android 应用程序中使用 NDK 构建的库时如何捕获 UnsatifiedLinkError?

我有一个Android项目,其中包含一个使用JNI从C函数中提取值的类。使用NDK将C函数内置到库中。当第一次加载类时,从C函数返回的值又用于初始化类中的变量。这很好用。但是,我还希望它通过提供默认值在缺少库时工作。所以我使用这样的东西:staticnativeStringgetstring();static{try{System.loadLibrary("library");NAME=getstring();}catch(Exceptione){NAME="Default";}}尽管有问题,当我尝试在缺少库的情况下运行此代码时,我仍然收到UnsatisfiedLinkError。为什

android - 在 ndk 应用程序中访问 android 上下文

有什么方法可以在我的ndk应用程序中传递/获取android上下文的对象。我想通过jni接口(interface)在我的ndk应用程序中使用SharedPreferences。要获取SharedPreferences对象的实例,我需要在Context对象上调用getSharedPreferences()。但是我无权访问上下文对象。或如何从NDK读取和写入xml文件?任何指针将不胜感激。 最佳答案 您不需要做任何特别的事情,就像常规的JNI机制一样。您需要获取指向上下文对象的指针,然后检索要调用的方法ID,然后使用所需的参数调用它。当

android - 如何为 NDK 静态库编写/调试 Android.mk?

我正在尝试使用最新的AndroidNDK(r5)构建静态库,但我没有任何运气。我已经能够毫无问题地构建和运行示例(例如,HelloJni),但是从“零”开始一个新项目是另一回事。对于这个实验,我正在尝试构建libpng。我的文件夹结构如下所示:root|+---jni|+----Android.mk(oneline:"include$(callall-subdir-makefiles)")|+----png|+----Android.mk(seebelow)|+----{abunchof.cand.hfiles)所以我有两个Android.mks。一个用于构建所有子项目,一个用于lib

android - 如何在 ANDROID NDK 中从 C 文件调用 CPP 文件中的函数,反之亦然?

我无法从c文件调用cpp文件中的函数,也无法从ndk本身的cpp文件调用c文件中的函数。我也尝试过使用extern"C"{}。粘贴我试过的代码以供引用。CFileCallingCpp.c:#include"CFileCallingCpp.h"//#include"custom_debug.h"#include"CppFile.h"voidtempFunc(){}voidprintTheLogs(){//ItsnotpossibletomakeuseoftheCPPclassincfile//CCustomDebugcls;//cls.printErrorLog("Thisistheer

android - Android和NDK下无法用gdb调试,启动Gdb导致App崩溃

我在尝试使用AndroidNDK调试native代码时遇到问题。当应用程序运行时,我启动了ndk-gdb,结果是gdb失去了与设备的连接,设备上的应用程序崩溃了。设备(SamsungGalaxy10.1)和模拟器都会发生同样的事情。主机运行的是MacOSX。应用程序的native部分由多个.so库组成,使用ndk-buildcleanallNDK_DEBUG=1构建我在下面附上了gdb输出。如有任何帮助,我们将不胜感激。编辑:也许问题出在“cp”命令失败?还有空的“Usinggdbsetupinit:”行?$NDK/ndk-gdb--verboseAndroidNDKinstallat