NDK调试

1.如果Android工程中已经存在c、c++文件,而且makefile也已经写好,那么此时需要让Android Studio indexer c、c++文件:

在build.gradle的android{}下配置:

 externalNativeBuild {
        ndkBuild {
            path file('src/main/jni/Android.mk')
        }
    }

    sourceSets.main {
        jniLibs.srcDir 'src/main/libs' //set libs as .so's location instead of jni
        jni.srcDirs = [] //disable automatic ndk-build call with auto-generated Android.mk file
    }

然后点击sync now,此时c、c++就可以点击跳转了。

2.jniLibs中的动态库需要更换成Debug的:

如图,将Debug文件下的debug的动态库拷贝到jniLibs中。

NDK调试_第1张图片

3.在build.gradle中如下图配置:

android {
    ... ...
  defaultConfig {
      ... ...
     ndk {   
        moduleName "jary"         //生成的so名字    
        abiFilters "armeabi", "armeabi-v7a", "x86"  //输出指定三种abi体系结构下的so库。    
        stl "stlport_static"    //打开.c 的 debug (此句是打开的debug的关键)
     }
  }
  buildTypes {
     debug {    
            jniDebuggable true //此句不加在真机上 debug 不受影响,但是在虚拟机上不能 debug
     }
  }

4.在AndroidMenifest中,将设置debug模式:

NDK调试_第2张图片

5.在Android studio中打开native debug模式:

NDK调试_第3张图片

NDK调试_第4张图片

你可能感兴趣的:(安卓开发)