JNI开发错误:''xxx''未识别签名

编写.java代码中的native方法,通过编译命令生成对应的头文件出错:
1.'xxxx'未识别签名:这个原因是native对应的方法的参数的类没有找到
2.找不到 'xxxx' 的类文件: 找不到对应的要编译的包含native方法的.java文件的class文件

针对上面两个问题,解决方法是要指点对应的类文件路径:

->android.com.my.MyNative.java:

    private native void native_addToPage(long pageHandle, PointF[] points);

假如我想通过:

javah -v -jni -d (指定.h文件导出路径)   (class文件名)

Javah -v -jni -d D:\Android\myproject\jni\  android.com.my.MyNative

上面会报1和2两个错误,解决办法,通过指定PointF这个类对应的class路径和android.com.my.MyNative.java对应的class路径:

javah -classpath x:\xxx\Sdk\platforms\android-28\android.jar(这个是指定PointF对应的class);x:\xxx/gradleBuild/intermediates/classes/debug(MyNative对应的class文件路径)  -v -jni -d D:\Android\myproject\jni\  android.com.my.MyNative

为了后面可以方法地生成对应的native方法,可以将上面的命令添加到AndroidStudio的extenalTool里面

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容