JNI编译时出现错误!
现在在学习做安卓驱动开发,在编译JNI里出现下面错误,请高手帮忙解答,谢谢!
make:进入目录'/home/work/4.2.2_r1'
target SharedLib: libIrService (out/target/product/rk2928sdk/obj/SHARED_LIBRARIES/libIrService_intermediates/LINKED/libIrService.so)
/home/work/4.2.2_r1/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld: out/target/product/rk2928sdk/obj/SHARED_LIBRARIES/libIrService_intermediates/onload.o: in function JNI_OnLoad:frameworks/base/services/jni/onload.cpp:68: error: undefined reference to 'android::register_android_server_IrService(_JNIEnv*)'
collect2: ld returned 1 exit status
make: *** [out/target/product/rk2928sdk/obj/SHARED_LIBRARIES/libIrService_intermediates/LINKED/libIrService.so] 错误 1
make:离开目录“/home/work/4.2.2_r1”
root@xiabei-desktop:/home/work/4.2.2_r1/frameworks/base/services/jni#
[解决办法]
jni编译,你不要在系统里面干啊!
你从官网上下载NDK,然后将你的工程文件放到sample文件夹下,ndk-build
如果不会的可以去网上看看,挺简单的!如果是测试用例,下载ndk工具,20~30秒就可以将hellojni编译完成
你的操作步骤一开始就是错的
[解决办法]
在ndk里面有个arm-linux-androideabi-ld文件(具体位置,你自己找找),你把它拷贝到4.4.3的目录下改名为ld,就OK了