NDK开发常见错误

来源:互联网 发布:p图片软件大全 编辑:程序博客网 时间:2024/05/17 07:43
  1. 在jni目录下没有发现Android.mk文件

    Android NDK: Your APP_BUILD_SCRIPT points to an unknown file: ./jni/Android.mk
  2. c文件中没有导入jni.h的头文件.

    jni/CommonError.c:4:1: error: unknown type name 'JNIEXPORT'jni/CommonError.c:4:19: error: expected '=', ',', ';', 'asm' or '__attribute__'before 'JNICALL'jni/CommonError.c:4:19: error: unknown type name 'JNICALL'
  3. c代码实现的方法没有写形参的名字.

    jni/CommonError.c: In function 'Java_com_ycy_commonerrordemo_MainActivity_sayHelloInC':jni/CommonError.c:6:3: error: parameter name omittedjni/CommonError.c:6:3: error: parameter name omittedjni/CommonError.c:8:13: error: 'env' undeclared (first use in this function)jni/CommonError.c:8:13: note: each undeclared identifier is reported only once for each function it appears in
  4. 调用native方法, 没有加载.so文件.

    No implementation found for native Lcom/ycy/commonerrordemo/MainActivity;.sayHelloInC ()Ljava/lang/String;
  5. 加载.so文件时, 名字写错.

    java.lang.UnsatisfiedLinkError: Couldn't load libcommonerror.so: findLibrary returned null
  6. 当前生成的arm平台下的.so文件, 运行在了x86的平台模拟器下.

    java.lang.UnsatisfiedLinkError: Couldn't load libcommonerror.so: findLibrary returned null
    • 解决方案: 在jni的目录下, 创建一个Application.mk, 内容如下:

      # 生成所有的机器码.APP_ABI := all# 生成单个平台的机器码APP_ABI := x86 armeabi 

0 0
原创粉丝点击