1.cannot resolve corresponding JNI function
解决办法:File--->Settings--->Plugins,将Android NDK Support(如下图中第一项)后面的对勾去掉。重启studio、
2.写JNI方法的类名不能带下划线,至于为什么我也不知道
在编写时我自己带了下划线,然后用"javah -classpath . -jni com.example.zday.Hello_Jni"总是显示错误找不到该类文件
3.C文件中NJI方法的命名规范
JNIEXPORT jstring JNICALL Java_包名_写JNI方法的类名_JNI方法名(JNIEnv* env , jobject thiz){函数体} 4.下面介绍在android studio中开发JNI的流程 4.1:配置NDK环境,下载好android ndk后配置到android studio中; 4.1:新建一个类,创建JNI方法
public class HelloJni { public static native String helloInC(); }4.3:javac命令将
上述
进行编译;进入到该类的包目录下
build.gradle
中添加ndk配置
abiFilters "armeabi", "armeabi-v7a", "x86"//cpu的类型}
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
6:NDK_Project_Path=nullsourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
7.couldn't find "libhello.so"
sourceSets { main { jniLibs.srcDir 'src/libs' } }
build.gradle中添加maven库:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.2.3'
}
}
allprojects {
repositories {
jcenter()
//Bmob的maven仓库地址,必须填写
maven { url "https://raw.github.com/bmob/bmob-android-sdk/master" }
}
}
添加compile依赖文件
compile 'cn.bmob.android:bmob-sdk:3.4.7-aar'