现在在学习做安卓驱动开发,在编译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# 

解决方案 »

  1.   

    jni编译,你不要在系统里面干啊!
    你从官网上下载NDK,然后将你的工程文件放到sample文件夹下,ndk-build如果不会的可以去网上看看,挺简单的!如果是测试用例,下载ndk工具,20~30秒就可以将hellojni编译完成你的操作步骤一开始就是错的
      

  2.   

    在ndk里面有个arm-linux-androideabi-ld文件(具体位置,你自己找找),你把它拷贝到4.4.3的目录下改名为ld,就OK了
      

  3.   

    呵呵,经过一下午的折磨,我的问题解决了,犯了个低级错误,android没定义,不知道楼主是不是也是这个问题