当前位置:编程学习 > wap >>

关于jni层编译的问题

我参考网上:一个打通jni,java framework,application三层的练习
完全按照步骤做的,现在我在frameworks/base/core/jni目录下面敲mm编译出现如下错误:

target thumb C++: libandroid_runtime <= frameworks/base/core/jni/android_mytest_hellojni.cpp
target thumb C++: libandroid_runtime <= frameworks/base/core/jni/AndroidRuntime.cpp

target SharedLib: libandroid_runtime (out/target/product/msm8660_surf/obj/SHARED_LIBRARIES/libandroid_runtime_intermediates/LINKED/libandroid_runtime.so)
prebuilt/linux-x86/toolchain/arm-linux-androideabi-4.4.x/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: out/target/product/msm8660_surf/obj/SHARED_LIBRARIES/libandroid_runtime_intermediates/AndroidRuntime.o: in function android::gRegJNI:AndroidRuntime.cpp(.data.rel.ro._ZN7androidL7gRegJNIE+0x0): error: undefined reference to 'register_android_mytest_hellojni(_JNIEnv*)'
collect2: ld returned 1 exit status

我在Android.mk中已经添加了源文件了:
LOCAL_SRC_FILES:= \
ActivityManager.cpp \
android_mytest_hellojni.cpp\

而且上面也显示编译了android_mytest_hellojni.cpp,在AndroidRuntime.cpp中也申明了函数register_android_mytest_hellojni,为何报未定义呢?
望高手指点! --------------------编程问答-------------------- 请问lz解决这个问题了,我也遇到了类似的问题,弄了好几天了,求解决方案 --------------------编程问答-------------------- 貌似是找不到函数啊  --------------------编程问答--------------------
引用 2 楼  的回复:
貌似是找不到函数啊

我参考http://blog.chinaunix.net/uid-7922708-id-3043552.html这个网页上的方法,在4.0的源码里加入自己写的函数,还是遇到了同样的错误,难道4.0源码不支持这种方法了么?但是我是按照/frameworks/base/core/jni/android_debug_JNITest.cpp这个文件来修改的,格式什么的都一样。
按理说不应该出现这个问题。 --------------------编程问答-------------------- 我刚刚解决了,是android没定义的原因
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,