Android Studio JNI学习之(5)-调试(LLDB与基于gradle-experimental插件)

要调试原生代码必需先安装LLDB与基于gradle-experimental插件

LLDB

在tools->Android->sdk manager 中的SDK tools中找到LLDB并安装.


gradle-experimental


classpath "com.android.tools.build:gradle-experimental:0.7.3"

不同版本的Experimental Plugin需要不同版本的gradle
gradle版本參照

app/gradle.build

apply plugin: 'com.android.model.application'

model { //这一行是新加的,对应上边的修改,
    /**
     * 这里要注意一下,如果使用gradle-experimental,参数赋值要使用 = 号,而不是空格,
     * 所以要把原来文件中的空格都用等号去替换;
     * 还有一部分参数使用的函数也与原来不一样,
     * 实在不能确定的就找出ndk samples中的build.gradle文件对比一下。
     */
    android {
        compileSdkVersion = 25
        buildToolsVersion = "25.0.2"

        defaultConfig {
            applicationId = "com.eric.pro"
            minSdkVersion.apiLevel = 10         //这两个参数和原来有点不一样,多了apiLevel
            targetSdkVersion.apiLevel = 25
            versionCode = 1
            versionName = "1.0"

        }

        ndk {       //NDK设置
            moduleName = "app"    //动态库的名称
            toolchain = 'clang'     //编译器,据说这个比gcc要快,没有这个写native代码时没有自动补全的功能
            CFlags.addAll(['-Wall', '-DHELLO_2'])    //对应gcc中的编译选项 CFLAGS,方括号内是一个数组,可以有多个值
            CFlags.add("-DHELLO_3")
            ldFlags.addAll(["-L../lib"]) //库文件路径
            ldLibs.addAll(['log']) //库文件名
            stl = "gnustl_static" //指示使用动态库还是静态库,stlport_static
            abiFilters.addAll('armeabi', 'armeabi-v7a', 'x86', 'arm64-v8a') //CPU架构
        }

        buildTypes {
            release {
                ndk.debuggable = false
                minifyEnabled = true
                proguardFiles.add(file('proguard-rules.pro'))
            }
            debug {
                ndk.debuggable = true //有这个才会支持调试native 代码
            }
        }

    }
}
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:25.3.1'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
}


配置完毕,直接打断点调试即可(与java一样)


使用gradle-experimental构建ndk,比以前简单多了,我们对比一下,我觉得最大的好处是Android.mk、Application.mk这两个文件再也不用写了


发布了18 篇原创文章 · 获赞 10 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/LIANGJIANGLI/article/details/78179832
今日推荐