官方的hello-jni示例,把hello-jni.c改成hello-jni.cpp后编译成功,但一运行就出错。发现编译时提示有libstdc++.a,而obj目录下这个文件只有8字节,所以我想会不会是按C++方式编译,导致程序找不到C++标准函数库的原因?请问怎么解决?Gdbserver : [arm-linux-androideabi-4.4.3] libs/armeabi/gdbserver
Gdbsetup : libs/armeabi/gdb.setup
Compile++ thumb : hello-jni <= hello-jni.cpp
StaticLibrary : libstdc++.a
SharedLibrary : libhello-jni.so
Install : libhello-jni.so => libs/armeabi/libhello-jni.so
Gdbsetup : libs/armeabi/gdb.setup
Compile++ thumb : hello-jni <= hello-jni.cpp
StaticLibrary : libstdc++.a
SharedLibrary : libhello-jni.so
Install : libhello-jni.so => libs/armeabi/libhello-jni.so
解决方案 »
- 求教,DialogInterface cannot be resolved to a type
- 如何集成微信的关注微信公众号的功能,有没有做过的...
- 有些客户android手机重新启动不能运行
- 什么网站能看到客户的需求发布呢?
- android xml布局超出一个界面
- 求助:android2.2 webview加载页面时,能否用本地资源替换页面中的资源(如图片、css等)?
- 大家好,请问listview可以实现分页么?
- udp断包
- android webview 播放视频(网上搜不到的问题)
- myeclipse 8.6安装adt 23后始终认不出sdk 23的开发环境
- 怎样用keytool生成MD5认证指纹?
- 问下做Android开发目前以何种语言为主?
Java_com_example_hellojni_HelloJni_stringFromJNI( JNIEnv* env,
jobject thiz )
{
return env->NewStringUTF("Hello from JNI !");
}就这样而已啊。我的文件从*.c转成*.cpp,里面(*env)改成了env,其它的没动,还要改什么?我可以编译成功,但在模拟器和真机里调试都是一启动就异常,没法执行。
extern "C"是用来处理(*env)->NewStringUTF的,我已经写成env->NewStringUTF,就不需要加了。
那我要用STL呢?用extern "C"包起来会不会好一些?
另外,据说只有cpp文件的话在里面要实现jni_onLoad函数,我没有试。