草庐IT

c++ - 如何使用NDK?从 'hello world' 应用程序开始

我希望看到一个用C/C++编写但可以在Android上运行的“Helloworld”程序。我知道这可以通过使用NDK和JNI调用来实现。但无法使其工作。没有在线指南有帮助。需要知道才能开始。我正在Windows7机器上进行开发,并且为了方便也使用Eclipse。Android安装路径:C:\ProgramFiles\Android\android-sdk-windows和NDK我已提取到:C:\ProgramFiles\Android\android-ndk-r5如何将NDK导入Eclipse?如何在Android中使用C/C++?如果我能在运行一个简单的“helloworld”时获得

android - android studio 项目中 CMake 和 NDK-build 的区别

CMake和NDK在androidstudio项目中构建的实际区别是什么。我已经浏览了谷歌文档,但这个概念还不清楚。根据谷歌文档:Android原生开发工具包(NDK):一个工具集,可让您在Android中使用C和C++代码,并提供平台库允许您管理nativeActivity并访问物理设备组件,例如传感器和触摸输入。CMake:与Gradle一起构建的外部构建工具你的原生库。如果您只计划,则不需要此组件使用ndk-build。当我们需要使用什么时,任何人都可以通过示例更好地解释吗? 最佳答案 在这里澄清一些混淆:ndk-build是

Android ndk std::to_string 支持

我正在使用androidNDKr9d和toolchain4.8但我无法使用std::to_string函数,编译器抛出此错误:error:'to_string'isnotamemberof'std'androidndk不支持这个功能吗?我尝试APP_CPPFLAGS:=-std=c++11没有运气。 最佳答案 您可以尝试LOCAL_CFLAGS:=-std=c++11,但请注意notallC++11APIsareavailablewiththeNDK'sgnustl.libc++(APP_STL:=c++_shared)提供完整的C

android - 在 Android 原生 ndk 中记录变量的值

我在AndroidNDK中使用C++设置了日志记录。我可以像这样向logcat打印一条消息:__android_log_write(ANDROID_LOG_INFO,"taghere","messagehere");现在假设我有一个名为testint的整数。如何打印这个int的值?这样的东西会打印地址,但我想要值。我在C++中没有找到任何关于如何执行此操作的内容。感谢您的帮助!__android_log_print(ANDROID_LOG_INFO,"sometag","%p",*test); 最佳答案 这是我见过的最简洁的方式:#

c++ - 如何在 Android NDK 和 STLport 中使用 boost 库(包括 shared_ptr)

这更像是一个答案而不是一个问题,因为我已经弄清楚了,至少就干净地编译库而言。我的主要问题是让shared_ptr工作。成分:Boostv.1.45.0http://www.anddev.org/viewtopic.php?p=29939上的STLport版本.NDK版本r4b。路线:在您的Android.mk文件中添加:LOCAL_CFLAGS+=-DBOOST_EXCEPTION_DISABLE-D_STLP_NO_EXCEPTIONS-DOS_ANDROID-D_STLP_USE_SIMPLE_NODE_ALLOC在STLport/STL/_string.h的第613行删除对__S

Android Studio 构建 NDK 项目非零退出值失败

我将我正在处理的项目从EclipseAndroidSDK环境导入到新的AndroidStudio。尝试运行项目我得到了这个Error:Executionfailedfortask':app:compileDebugNdk'.>com.android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:Process'command'ndk/ndk-build''finishedwithnon-zeroexitvalue2首先对我来说,看到这个错误很奇怪,因为之前在EclipseAnd

android - 有没有办法让 Android NDK-build 使用更新版本的 gcc?

我安装的是AndroidNDKr5bWindows版本,我使用cygwin编译C代码。我看到NDK-build实际上正在调用C:\android-ndk-r5b\toolchains\arm-linux-androideabi-4.4.3\prebuilt\windows\bin\arm-linux-androideabi-gcc-4.4.3进行编译。我想知道有没有办法让NDK-build使用更新版本的gcc?我想这样做的原因是:Gcc4.4.3hasknownbugongeneratingnotoptimalassemblycodeforcertainNEONintrinsicsht

Android NDK - 使两个 native 共享库相互调用

浪费了半天时间尝试构建两个共享库,例如mod1和mod2(AndroidNDK编译成libmod1.so和libmod2.so),来自jni文件夹和子文件夹,然后让mod1从mod2调用一个函数。关于如何使构建工作的大量答案,但是运行时动态链接不起作用,应用程序在启动时崩溃。决定把这个问题贴出来马上回答,让整个过程的Q和A在一起,希望别人不要再浪费一天的时间去研究了。 最佳答案 正确的构建过程相对容易,我的问题是使libmod1.so依赖于libmod2.so在启动时导致不满意的链接-mod1代码找不到mod2共享库,即使两者都存在

安卓工作室 "Current NDK support is deprecated"

截至2015年1月,对AndroidStudio的NDK支持仍然无法使用。一条神秘的消息说:“将来会提供替代方案。”我想知道gradle/google在这方面的方向是什么,因为目前无法制定适当的开发计划。版本0.7+:他们建议仍然使用ndk-build/ant0.8+版:他们引入了最小的NDK支持1.0.0版:看起来NDK支持即将正式发布1.0.2版:现在看来NDK支持已被弃用。我的问题是:每个人都在恢复使用ndk-build和手工制作的android.mk文件吗?是否有人在大型项目中使用1.0.0+(支持gradlendk)当前已弃用的方法?“future将提供替代方案”将走向何方?

android - 何时在 Android NDK 中使用 JNIEXPORT 和 JNICALL?

我正在尝试编写自己的jni资源。查看一些ndk示例,我发现他们经常使用这些宏JNIEXPORT和JNICALL后跟java包的名称这样的JNIEXPORTvoidJNICALLJava_com_example_plasma_PlasmaView_renderPlasma(JNIEnv*env,jobjectobj,jobjectbitmap,jlong​​time_ms)我用谷歌搜索了,但我不明白何时以及如何使用这些宏 最佳答案 JNIEXPORT和JNICALL在NDK_ROOT/platforms/android-9/arch-