Android Gradle Plugin 7 LibraryBuildType 不再具有 isDebuggable 属性

标签 android kotlin gradle android-gradle-plugin gradle-kotlin-dsl

我正在从 Android Gradle 4.1.3 升级到 7.0.2。我注意到的一件事是,对于我的 com.android.library模块

getByName("foo") {
  ...
}
现在有一个接收器类型 LibraryBuildType而不是 BuildType它曾经。这个LibraryBuildType不再有 isDebuggable属性(property),其中BuildType曾经有过。
official android docs提到

If your app depends on a library module that you also want to debug, that library must also be packaged with debuggable true so it retains its debug symbols.


显然这些文档已经过时了,但是有什么用呢?是 debuggable true库模块不再需要?
我找到了 git log for LibraryBuildType ,这表明它是在 2020 年 4 月左右添加的,但我在 android gradle plugin release notes 中没有找到任何相关信息

最佳答案

LibraryTaskManager used libraryVariant.getDebuggable
根据我的发现,LibraryTaskManager 的源代码仍然使用 libraryVariant.getDebuggable()由 buildType&productFlavor 生成。我不知道为什么 debuggable/isDebuggable LibraryBuildType 中的选项不可用,但是如果有人正在寻找解决方法,请使用以下代码:

// library's build.gradle.kts
buildTypes {
    named("debug") {
        (this as com.android.build.gradle.internal.dsl.BuildType).isDebuggable = false
    }
}

关于Android Gradle Plugin 7 LibraryBuildType 不再具有 isDebuggable 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69300956/

相关文章:

java - 从拦截器 token 撤回http请求无效

multithreading - 未解析的引用线程

带有res文件的android库依赖库

android - Android中的OpenCV文件操作

android - 单击电子邮件链接时出现不受支持的操作错误

android - 在 Android api 级别 27 中将 getContext() 覆盖为非空是个坏主意?

android - 升级错误后Android Studio “Gradle sync failed: …”

android - 错误:等级:> java.io.IOException:输出jar为空。您是否指定了正确的 '-keep'选项?

android - 在 Android 6.0 中接听来电

android - 我可以创建(如何)指向移动应用程序的单个 html 链接,根据设备将用户发送到 itunes 或 gplay 吗?