如何在 Android Studio 中调试 android 库模块?

How to debug android library module in Android Studio?

我有一个 Android Studio 项目,其中包含一个库模块,作为另一个 gradle 项目添加到其中。我想调试库代码并在其上设置断点。

如果我想在 运行 应用程序在模拟器或真实设备上调试库模块,我应该使用什么 gradle 设置?


更新 1

这是 settings.gradle 文件:

include ':app'
include':my-library'

我正在使用此设置来调试我的库:

|- myApplication
|  |- settigs.gradle
|  |- build.gradle
|     ...
|- myLibrary
   |- build.gradle
      ...

添加到 settings.gradle:

include ':myLibrary'
project(':myLibrary').projectDir = new File(settingsDir, '../myLibrary')

添加到 build.gradle(您的应用)

compile project(':myLibrary')

您的库被简单地包含在内,您可以像在应用程序中一样调试和设置断点。

经过几天的努力,我找到了能够调试库模块的正确配置:

1- Create 一个包含两个模块的项目,applibrary-module

2- Addlibrary-module 直接模块依赖到 app 。这就是 app 的 build.gradle :

compile project(':library-module')

3- 删除 app build.gradle

中添加的任何自动签名配置

4- applibrary-module

中删除 这些行
minifyEnabled true
shrinkResources true

我将库模块调试和发布构建类型都设置为可调试

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        debuggable true
        jniDebuggable true
    }
    debug {
        debuggable true
        jniDebuggable true
        minifyEnabled false
    }
}

我很久以前就遇到过这个问题。某些 gradle 版本会将您的库切换到发布模式,即使您将其设置为调试。解决方法是将 gradle 更新到最新版本。如果它没有解决它。在你的图书馆里,不要使用:

if BuildConfig.DEBUG

改为使用:

boolean isDebuggable = ( 0 != ( getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE ) );