[英]Migrating from build.gradle to build.gradle.kts having issue with some code snippets
[英]Migrating the build.gradle to build.gradle.Kts : Not able to resolve Properties class
虽然将build.gradle
转换为build.gradle.kts
是一个手动过程,但我在下面的代码段中努力转换。
我多次尝试使缓存无效并重新启动工作室。 但是,无法识别 android.varinatFilter。
android.variantFilter { variant ->
if (variant.buildType.name == 'release'
&& variant.getFlavors().get(0).name == 'development') {
variant.setIgnore(true)
}
if (variant.buildType.name == 'debug'
&& variant.getFlavors().get(0).name == 'production') {
variant.setIgnore(true)
}
}
Java.util.Properties
依赖项的属性类未在.kts
文件中解析,也无法识别Java.io
的 FileInputStream 类。
def getProps(path) {
Properties props = new Properties()
props.load(new FileInputStream(file(path)))
return props
}
同样在应用 kotlin 注释处理器时
kapt 'androidx.lifecycle:lifecycle-common-java8:2.1.0' To
kapt {'androidx.lifecycle:lifecycle-common-java8:2.1.0'}
不起作用并返回编译时错误。
任何帮助,将不胜感激。
更新
Java.util.Properties
依赖项的属性类未在.kts
文件中解析,也无法识别Java.io
的 FileInputStream 类。
这将通过 Invalidate cache 和 Restart 解决。(开始重构项目级别的 gradle,然后是 settings.gradle,然后是 app.gradle 文件)
对于kapt {'androidx.lifecycle:lifecycle-common-java8:2.1.0'}
- 请使用双引号,例如kapt {"androidx.lifecycle:lifecycle-common-java8:2.1.0"}
,请在此处查看详细信息。
还请对方法使用以下语法:
import java.io.FileInputStream
import java.util.Properties
/***/
fun getProps(path: String): Properties {
val props = Properties()
props.load(FileInputStream(file(path)))
return props
}
变化:
fun
代替def
path: String
new
关键字val
开头,例如,如果编译器能够理解类型,则无需手动输入。Unit
则返回类型是强制性的。对于过滤器 - 我没有处理过这个。 但是请考虑:
variant.getFlavors().get(0).name
替换为variant.flavors[0].name
variant.setIgnore(true)
替换为variant.ignore=true
那将是
android.variantFilter {
if (buildType.name == "release" && flavors[0].name == "development") {
ignore = true
}
if (buildType.name == "debug" && flavors[0].name == "production") {
ignore = true
}
}
虽然我认为更正确的方法是
flavors[0].name = "xyz"
应该
flavors.map { it.name }.contains("xyz")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.