APP集成了lib模块,发现lib模块的代码不能调试,调试时出现
No executable code found错误:
把APK转换为jar包发现,lib的代码被混淆了,DEBUG下调试代码被混淆,会造成与源码的不匹配,因此要解决这个问题,必须先解决为什么debug下lib代码会被混淆,需要确认以下几点:
1、lib模块的gradle配置:
debug下不能混淆,同时APP模块里的 buildTypes的debug配置也不能有混淆。buildTypes { debug { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android-optimizetxt'), 'proguard-rules.pro' } }
2、确认Build Variants配置是否一致:
在APP模块的gradle里配置:
dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) debugCompile project(path: ':bugrpt', configuration: "libraryDebug") releaseCompile project(path: ':bugrpt', configuration: "libraryRelease") }
在lib模块的gradle里配置:
android { defaultPublishConfig 'release' publishNonDefault true productFlavors { library { } } }此时再看 Build Variants 也是一致的。
参考: