我正在从Android 4.1.3升级到7.0.2。我注意到的一件事是,对于我的com.android.library
模块,
getByName("foo") {
...
}
现在有一个接收端类型的LibraryBuildType
,而不是以前的BuildType
。此LibraryBuildType
不再具有isDebuggable
属性,这是BuildType
曾经拥有的属性。
如果您的应用程序依赖于您也想调试的库模块,则该库还必须与
debuggable true
一起打包,以便保留其调试符号。
很明显,这些文档已经过时了,但是是什么原因呢?库模块不再需要debuggable true
吗?
我已经找到了LibraryBuildType
,这表明它是在2020年4月左右添加的,但是我还没有在android gradle插件发布说明中找到有关这方面的任何信息
发布于 2022-01-02 02:55:37
根据我所发现的,LibraryTaskManager
的源代码仍然使用buildType&productFlavor生成的libraryVariant.getDebuggable()
。我不知道为什么debuggable
/ isDebuggable
选项不能从LibraryBuildType
中获得,但是如果有人在寻找解决办法,请使用下面的代码:
// library's build.gradle.kts
buildTypes {
named("debug") {
(this as com.android.build.gradle.internal.dsl.BuildType).isDebuggable = false
}
}
发布于 2021-12-07 02:18:56
我遇到了同样的问题,所以采用了另一种解决办法。
将initWith()与调试buildType一起使用,可以使新类型也可调试。
create("foo") {
// Apply debug type setting by initWith()
initWith(getByName("debug"))
}
但是我认为Gradle kts应该添加可调试属性来构建类型。
发布于 2021-09-23 14:10:50
我认为为库删除该属性是有意义的,因为您应该在应用程序级别定义可调试。
https://stackoverflow.com/questions/69300956
复制相似问题