Android Studio Library Module c+
2017-05-06 本文已影响729人
翻滚着的牛宝宝
今天梳理项目,由于打算以SDK的方式为第三方提供服务,我对Demo工程进行抽离,将核心逻辑抽到一个独立Module Library中。Library 采用CMakeLists.txt组织C++代码。
结果神奇的事情发生了,之前Demo工程C++断点debug都没有问题,但将工程拆离成主App Modul依赖Library工程后,发现无法Debug到Library了。首先想到是Library Module的配置中未打开enable debug选项。进行设置enable debug为true后,尝试发现可以正常跟代码到Library的java层,但无法跟到c++层。几经尝试后都无果。
转战百度后找到解决方案,如下:
- 在主工程gradle中分别配置debug、release依赖:
debugCompile project(path: ':your-lib', configuration: 'debug')
releaseCompile project(path: ':your-lib', configuration: 'release') - 在Library工程gradle中配置:
android {
publishNonDefault true
}
尝试后很好使,果然简单可依赖。但为什么呢?
后来发现默认情况下,主App对Library的依赖是release的,因此会导致Library native代码不可调试。
参考:
解决方案 https://github.com/googlesamples/android-ndk/wiki
对于无法Debug的分析 http://www.jianshu.com/p/1907bffef0a3