如何在 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 一个包含两个模块的项目,app 和 library-module
2- Add 从 library-module
直接模块依赖到 app
。这就是 app
的 build.gradle :
compile project(':library-module')
3- 删除 app
build.gradle
中添加的任何自动签名配置
4- 从 app
和 library-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 ) );
我有一个 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 一个包含两个模块的项目,app 和 library-module
2- Add 从 library-module
直接模块依赖到 app
。这就是 app
的 build.gradle :
compile project(':library-module')
3- 删除 app
build.gradle
4- 从 app
和 library-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 ) );