Android 将build.gradle迁移到build.gradle.Kts:无法解析类属性
虽然将Android 将build.gradle迁移到build.gradle.Kts:无法解析类属性,android,gradle,build.gradle,gradle-kotlin-dsl,Android,Gradle,Build.gradle,Gradle Kotlin Dsl,虽然将build.gradle转换为build.gradle.kts是一个手动过程,但在下面的代码段中,我正在努力转换 我多次尝试使缓存无效并重新启动studio。但是,无法识别android.varinatFilter android.variantFilter { variant -> if (variant.buildType.name == 'release' && variant.getFlavors().get(0).name =
build.gradle
转换为build.gradle.kts
是一个手动过程,但在下面的代码段中,我正在努力转换
我多次尝试使缓存无效并重新启动studio。但是,无法识别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)
}
}
def getProps(path) {
Properties props = new Properties()
props.load(new FileInputStream(file(path)))
return props
}
Java.util.Properties的Properties类
依赖项未在.kts
文件中得到解析,Java.io
的FileInputStream类也无法识别
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)
}
}
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的Properties类
依赖项未在.kts
文件中得到解析,Java.io
的FileInputStream类也无法识别
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)
}
}
def getProps(path) {
Properties props = new Properties()
props.load(new FileInputStream(file(path)))
return props
}
这将通过无效缓存和重新启动得到解决。(开始重构项目级gradle,然后依次重构settings.gradle和app.gradle文件)对于
kapt{'androidx.lifecycle:lifecycle-common-java8:2.1.0'}
-请使用双引号,例如kapt{“androidx.lifecycle:lifecle-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
}
变化:
- 您需要在文件开头使用java包进行导入
- 使用
而不是fun
def
- 方法需要参数类型,对此-
path:String使用“:”
不需要关键字new
- 可以以
开头,例如,如果编译器能够理解类型,则无需手动输入val
- 如果结果不是
单位
- 将引号“替换为”
- 将
替换为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”){
忽略=真
}
if(buildType.name==“debug”&&flavors[0]。name==“production”){
忽略=真
}
}
虽然我认为这是一个更正确的方法
flavors[0]。name=“xyz”
应该是
flavors.map{it.name}.contains(“xyz”)
这两个导入java.io.FileInputStream
,导入java.util.Properties
未得到解决。@Dipalis.,这是IntelliJ Idea错误,还是在命令行执行gradlew
后出现同一行?