1、忘记在APP目录的build.gradle文件里添加
defaultConfig {
versionCode 1
versionName “1.0”
ndk{
//moduleName “hhhh” //必须加上,否则在AS中就报错。
ldLibs “log”,”z”,”m” //在C代码打印Log
//这个和上面添加多CPU类型一样,可以不写
// abiFilters “armeabi”,”armeabi-v7a”,”x86”,”mips”
}
}
Error:Execution failed for task ':app:clean'.
> Unable to delete file: D:\Users\Administrator\test2\CCC\app\build\intermediates\exploded-aar\com.android.support\appcompat-v7\22.2.1\jars\classes.jar
2错误整理
写错了load的library
java.lang.UnsatisfiedLinkError: Couldn’t load hell0: findLibrary returned nullAndroid.mk文件编写错误
/jni/Android.mk:4: * missing separator. Stop.LOCAL_MODULE配置不能有扩展名
//jni/Android.mk:hello.so: LOCAL_MODULE_FILENAME must not contain a file extension- c或者c++的源文件名称配置错误
objs/hello/helo.o’. Stop. 如果使用了错误的cpu平台
java.lang.UnsatisfiedLinkError: Couldn’t load hello: findLibrary returned null添加多cpu平台的支持:新建Application.mk在jni目录,添加:APP_ABI := armeabi armeabi-v7a x86 mips 指应用基于哪种指令集来进行编译:市场上就是上面4种。或者直接写APP_ABI := all
c语言方法名称错误,导致java代码无法寻找到c代码
Caused by: java.lang.UnsatisfiedLinkError: Native method not found: com.itheima.hellojni.MainActivity.helloFromC:()Ljava/lang/String;应用程序闪退
06-25 07:31:46.698: I/dalvikvm(1871): #00 pc 0008ee6d /system/lib/libdvm.so
06-25 07:31:46.698: I/dalvikvm(1871): #01 pc 000738ca /system/lib/libdvm.so
06-25 07:31:46.698: I/dalvikvm(1871): #02 pc 000739f4 /system/lib/libdvm.so
06-25 07:31:46.698: I/dalvikvm(1871): #03 pc 00038f5b /system/lib/libdvm.so
06-25 07:31:46.698: I/dalvikvm(1871): #04 pc 0003bdbd /system/lib/libdvm.so
要么就是c代码有逻辑错误
要么编码问题,中文或者空格路径