Articles of android ndk

“无法在cocos2dx应用程序中find导入路径中带有’CocosDenshion / android’标签的模块”错误

我正在尝试编译在cocos2d-x上开发的Android本机应用程序。 当我尝试调试我的应用程序时,我收到以下错误。 Android NDK: jni/Android.mk: Cannot find module with tag ‘CocosDenshion/android’ in import path Android NDK: Are you sure your NDK_MODULE_PATH variable is properly defined ? Android NDK: The following directories were searched: 我的android.mk文件中有以下几行 $(Call import-add-path, $(LOCAL_PATH)/../../../CocosDenshion/android) LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static cocosdenshion_static include $(BUILD_SHARED_LIBRARY) $(call import-module,CocosDenshion/android) $(call import-module,cocos2dx) 在我的build_native.sh中,NDK_MODULE_PATH定义为 “NDK_MODULE_PATH=${COCOS2DX_ROOT}:${COCOS2DX_ROOT}/cocos2dx/platform/third_party/android/prebuilt” 任何人都可以帮我解决这个问题。

Android NDK:包括boost c ++库

我正在尝试使用NDK在我的Android应用程序中使用boost库。 我在这里和这里find了几个成功案例,但我不能对我说同样的话。 我特意尝试在此链接中使用库,以及boost线程库。 在下面的代码中,我只是尝试包含线程库,而不是数学库。 我用来构建boost库的过程与我附加的第一个链接几乎相同。 到目前为止,似乎我已经成功构建了boost库,但是当我运行ndk-build ,我收到以下错误: Prebuilt : libboost_thread.a <= /sources/ cp: omitting directory `path/to/ndk/sources/boost’ make: *** [obj/local/armeabi/libboost_thread.a] Error 1 显然cp: omitting directory…并不是一个错误。 但我唯一能得到的就是下一行,这并不是什么意思。 Error 1 这是我的Android.mk文件: LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_STATIC_LIBRARIES := boost_thread LOCAL_LDLIBS := lboost_system-gcc-md lboost_thread-gcc-md -lgnustl_static LOCAL_LDLIBS += lboost_system-gcc-md lboost_thread-gcc-md \ -L$(NDK_ROOT)/sources/cxx-stl/gnu-libstdc++/libs/armeabi \ -lgnustl_static LOCAL_SRC_FILES := #cpp_sources LOCAL_MODULE := […]

Android通话录音未录制来电语音

我正在使用自动呼叫记录器应用程序,我能够使用MediaRecorder.AudioSource.VOICE_CALL在android 6下方录制语音呼叫,从android 6无法使用VOICE_CALL录制语音呼叫。 我设法使用MediaRecorder.AudioSource.MIC进行录制,但这里传入的语音没有录制,我想在正常模式下录制语音通话,而不是在扬声器模式下录制。 请帮帮我。 (我曾尝试过Xiomi Redmi 4a(android 6),没有工作)。 myRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); myRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); myRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC); myRecorder.setMaxDuration(60 * 60 * 1000); AudioManager audiomanager = (AudioManager)getSystemService(AUDIO_SERVICE); audiomanager.setMode(2); 编辑:权限没有问题。 更新:任何人都知道如何强制另一个流到MIC音频源。 这需要原生的android代码。 请帮助我。 有关路由音频的更多详细信息,请参阅此问题

如何从Android NDK获取资产中的文件

我正在尝试从本机端访问assets文件夹中的图像文件。 现在我可以成功搜索assets文件夹及其子目录,find我要查找的特定文件: AAssetDir* assetDir = AAssetManager_openDir(asset_manager, “images”); const char* filename; while ((filename = AAssetDir_getNextFileName(assetDir)) != NULL) { __android_log_print(ANDROID_LOG_DEBUG, “Debug”, filename); } AAssetDir_close(assetDir); 我也在使用OSG。 我使用以下代码将图像设置为我的着色器的纹理: texture->setImage(osgDB::readImageFile(fileNameWithPath)); 但是该文件名必须包含绝对路径,因为它不在同一目录中。 但是我发现我无法获得资产目录的绝对路径,因为它与APK一起被压缩。 由于我无法访问绝对路径,我可以使用其他方式来获取图像? 另外需要注意的是,我确实希望将资产文件夹中的文件保存为sd卡。

Android NDK使用哪种编译器?

我正在为Android应用程序编写基于ARM NEON的代码,而我正在努力解决某些编译器标志无法识别的问题。 我后来意识到这些标志的支持最近才添加,而且我的GCC版本更旧了。 我正在Windows上做整件事,并受到Cygwin提供的版本的限制。 这是我的问题:在我尝试在我的Windows机器上构建GCC 4.6.0并让Cygwin喜欢它之前,它会对我有用还是NDK使用自己版本的GCC,我的升级根本不会影响它? 如果是,是否可以告诉它使用不同的编译器?

适用于Android NDK的Googletest

我查看了之前关于Android的unit testing的答案,其中建议将Googletest作为一个不错的选择 。 但是,我看了一下Google C ++测试框架 – Googletest 。 关于平台,我没有看到任何提及对Android的支持。 有人可以告诉任何事情,如果有一些方法可以将它与Android设备一起使用 – 例如建立工具链的步骤等等?

Android NDK:如何将Android.mk包含到另一个Android.mk(分层项目结构)中?

看起来有可能,但我的脚本会产生奇怪的结果: LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) include $(LOCAL_PATH)/libos/Android.mk include $(LOCAL_PATH)/libbase/Android.mk include $(LOCAL_PATH)/utils/Android.mk LOCAL_MODULE := native include $(BUILD_SHARED_LIBRARY) 只有第一个包被解析正常,其他Android.mk文件正在奇数路径上被查询。 建议? 更新:我打破了我的建筑环境……在办公室没问题,但在家里LOCAL_PATH:= $(调用my-dir)将LOCAL_PATH定义为NDK目录而不是项目目录。 这是我的建筑批次: set BASHPATH=K:\cygwin\bin\bash set PROJECTDIR=/cygdrive/h/Alex/Alex/Work/Android/remote-android set NDKDIR=/cygdrive/h/Alex/Programming_Docs/Android/android-ndk-r6/ndk-build set APP_BUILD_SCRIPT=/cygdrive/h/Alex/Alex/Work/Android/project/jni/Android.mk set DEV_ROOT=h:/Alex/Alex/Work/Android/project %BASHPATH% –login -c “cd %PROJECTDIR% && %NDKDIR%” 更新:我完全不明白这件事是如何构成路径的。 我收到路径错误,如“/cygdrive/d/project/jni//cygdrive/d/Soft/project/jni/libos/src/libos.cpp”。这是在我决定指定根目录中的所有文件之后Android.mk而不是包含子模块。 更新2:没有运气,这也不起作用: LOCAL_PATH:= $(call my-dir) # Include makefiles here. include $(LOCAL_PATH)/libos/Android.mk include $(LOCAL_PATH)/libbase/Android.mk include $(LOCAL_PATH)/utils/Android.mk […]

在Android库中调试本机代码

我的工作区布局是: . ├── ApplicationLibrary │ ├── AndroidManifest.xml │ ├── … │ ├── jni │ ├── libs │ ├── … │ └── src └── Application ├── AndroidManifest.xml ├── ant.properties └── … 如何在Eclipse中调试本机库? 有人暗示过这个吗?

从.aar文件Android中提取代码

如何从aar文件中提取代码。[无意中我的主项目在另一个系统上无法访问我的邮件上只有aar文件] 我需要从aar文件中提取JNI代码。 我试图将扩展名更改为.jar但仅提取.class,有人知道如何提取那些aar的东西。

Eclipse Juno ADT插件删除了NDK路径?

我找不到使用ADT插件在Eclipse Juno上设置NDK路径的选项。 (我昨天从Android网站下载了ADT Bundle)。 每个人都说我应该在Windows下find它 – >首选项 – > Android – > NDK但Android下的NDK选项根本不存在。 也许他们在最近的版本中更改了它的位置? 无论如何,我似乎无法find一种方法来改变Eclipse中的NDK路径。 图片: 我觉得我错过了一些非常明显的东西……