APP动态调试lib模块(No executable code found解决方案)-APP的debug版集成lib的debug版

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配置是否一致:

3、参考 Different dependencies for debug and release in gradle and Android Studio
在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 也是一致的。


参考:
Different dependencies for debug and release in gradle and Android Studio

你可能感兴趣的:(AndroidStudio)