编写.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里面