![](/img/trans.png)
[英]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.