APP集成了lib模块,发现lib模块的代码不能调试,调试时出现
No executable code found错误:
把APK转换为jar包发现,lib的代码被混淆了,DEBUG下调试代码被混淆,会造成与源码的不匹配,因此要解决这个问题,必须先解决为什么debug下lib代码会被混淆,需要确认以下几点:
1、lib模块的gradle配置:
buildTypes {
debug {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimizetxt'), 'proguard-rules.pro'
}
} debug下不能混淆,同时APP模块里的
buildTypes的debug配置也不能有混淆。
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
也是一致的。
参考:
本文详细探讨了在APP开发过程中遇到的lib模块代码在debug模式下被混淆的问题,提供了检查和调整gradle配置的方法,确保debug模式下不发生混淆,从而保持与源码的一致性。

被折叠的 条评论
为什么被折叠?



