使用android studio2.0进行ndk开发
首先
1、distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip
2
classpath "com.android.tools.build:gradle-experimental:0.6.0-beta5"
3、gradle文件修改
![](https://img-blog.csdn.net/20160525163010212?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
gradle文件内容:
apply plugin: 'com.android.model.application' model { android { compileSdkVersion = 23 buildToolsVersion = "23.0.2" defaultConfig { applicationId "com.shirun.jni" minSdkVersion.apiLevel = 15 targetSdkVersion.apiLevel = 23 } buildTypes { release { minifyEnabled = false proguardFiles.add(file('proguard-rules.txt')) } } } android.ndk{ moduleName = "myJni" } android.productFlavors { create("arm") { ndk.abiFilters.add("armeabi") } create("arm7") { ndk.abiFilters.add("armeabi-v7a") } create("arm8") { ndk.abiFilters.add("arm64-v8a") } create("x86") { ndk.abiFilters.add("x86") } create("x86-64") { ndk.abiFilters.add("x86_64") } create("mips") { ndk.abiFilters.add("mips") } create("mips-64") { ndk.abiFilters.add("mips64") } // To include all cpu architectures, leaves abiFilters empty create("all") } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.3.0' }4、在APP目录下右击新建jni目录
5、新建一个类,进行加载jni
6.生成c文件
可以看到在jni下生成了myJni.c文件,文件内容就一个include
7.生成.h头文件
在工具栏点击Build->Make Project
然后在项目的main目录下输入命令 javah -d jni -classpath D:\Android\sdk\platforms\android-23.android.jar;..\..\build\intermediates\classes\all\debug com.shirun.jni.MyJni
然后可以看到自己的jni目录下多了个.h的头文件
8、然后将我们的myJni.c文件稍作修改
9、在main中运行:
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView tv = (TextView) findViewById(R.id.tv); MyJni myJni = new MyJni(); tv.setText(myJni.getString("sdd")); } }效果:
10。最后说一下我们生成的.so库的位置,如果拿错了.so类库,在别的地方是用不了的,当初在这个坑里躺了几个小时.......
参考资料:
http://www.jianshu.com/p/7844aafe897d