读书人

JNI编译时出现异常

发布时间: 2013-08-09 15:16:24 作者: rapoo

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了

读书人网 >Android

热点推荐