Error: Can't recover from an I/O error with the following message: com_shark_ndk_ndkjnidemo_JniUtils.h (Permission denied)
创建工程
android 中new一个NDKJNIDemo工程:
创建了一个JniUtils类,并且创建了一个名为getStringFromC()的nativie方法,该方法作用就是简单的从JNI层返回一个字符串给Java层,代码如下:
package com.shark.ndk.ndkjnidemo;
public class JniUtils {
static {
System.loadLibrary("NDKJNIDemo");//与build.gradle里面设置的so名字,必须一致
}
public static native String getStringFromC();
}
生成头文件
进入module/build/intermediates/classes/debug目录下,在命令行下使用javah生成头文件,我这里是这样的:
cd app/build/intermediates/classes/debug
javah -jni com.liuling.ndkjnidemo.JniUtils
发现permission denied果断把android studio new 的工程执行chmod -R 777 ./, 重新执行
javah -jni com.liuling.ndkjnidemo.JniUtils
成功!