6 回答

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超8個(gè)贊
我遇到了同樣的問(wèn)題,對(duì)我來(lái)說(shuō)這個(gè)解決方案有效。
從 android/app/src/main/kotlin -> android/app/src/main/java 移動(dòng)文件夾 com.example.test_app (任何名稱)
將 MainActivity.kt 替換為 Java 版本,或復(fù)制到此處
package com.example.test_app;
import androidx.annotation.NonNull;
import io.flutter.embedding.android.FlutterActivity;
import io.flutter.embedding.engine.FlutterEngine;
import io.flutter.plugins.GeneratedPluginRegistrant;
public class MainActivity extends FlutterActivity {
@Override
public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) {
GeneratedPluginRegistrant.registerWith(flutterEngine);
}
}
刪除以下代碼 android/app/build.grandle
...
apply plugin: 'kotlin-android'
...
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
在同一位置替換以下內(nèi)容:
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0'
}
到
dependencies {
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

TA貢獻(xiàn)1719條經(jīng)驗(yàn) 獲得超6個(gè)贊
默認(rèn)情況下,flutter 模板支持使用 Kotlin 編寫 Android 代碼,或使用 Swift 編寫 iOS 代碼。要使用 Java 或 Objective-C,請(qǐng)使用 -i 和/或 -a 標(biāo)志:
在終端中運(yùn)行:flutter create -i objc -a java your_project_name
.
如果您想更改現(xiàn)有的應(yīng)用程序平臺(tái)語(yǔ)言選擇,作為解決方法,您可以刪除 android/ 目錄并運(yùn)行flutter create -a java
以重新創(chuàng)建新語(yǔ)言選擇的目錄(ios/ 和 Swift 相同)。不過(guò),您需要重新應(yīng)用自定義更改。

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超3個(gè)贊
如果您從 cmd 創(chuàng)建新項(xiàng)目:
flutter create -i objc -a java project_name
注意:-a 表示 android 標(biāo)志,-i 表示 ios 標(biāo)志。如果你只想要java,你可以刪除-i objc
如果您想轉(zhuǎn)換現(xiàn)有項(xiàng)目:
flutter create -a java .
轉(zhuǎn)換現(xiàn)有項(xiàng)目時(shí),上行末尾有一個(gè)點(diǎn)

TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超4個(gè)贊
flutter create -a java .
在您的項(xiàng)目目錄中 運(yùn)行
flutter create:如果在已存在的項(xiàng)目上運(yùn)行,這將修復(fù)該項(xiàng)目,重新創(chuàng)建丟失的所有文件。
如果目錄僅包含生成的示例代碼,請(qǐng)刪除該kotlin
目錄android/src/main

TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超6個(gè)贊
只是想跟進(jìn)這個(gè)問(wèn)題,因?yàn)榻裉煳冶仨殞?Flutter 項(xiàng)目中的默認(rèn)語(yǔ)言從 Kotlin 更改為 Java,并且遇到了一個(gè)小痛點(diǎn),我發(fā)現(xiàn)flutter create -i swift -a java .
在我的項(xiàng)目目錄中運(yùn)行可以工作,但導(dǎo)致我的項(xiàng)目名稱根據(jù)它所在的目錄進(jìn)行更改,如果該目錄名稱是我的“包名稱”的最后一個(gè)值(即:com.flutter.app并且目錄是“app”),那么D8: Program type already present:
當(dāng)編譯。
這是由于原始 Kotlin src 的 MainActivity 造成的。我發(fā)現(xiàn)我必須(在將我的源代碼簽入我想在包名稱中使用的“app”文件夾中之后),首先刪除這個(gè)現(xiàn)有android/app/src/main/kotlin
文件夾,然后運(yùn)行flutter create -i swift -a java .
命令。
請(qǐng)注意,我沒(méi)有將任何獨(dú)特的代碼添加到 Kotlin 文件夾中,因此無(wú)需擔(dān)心刪除該文件夾。
希望這可以幫助遇到類似問(wèn)題的其他人。

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超6個(gè)贊
我也在使用 Kotlin /Flutter。
通過(guò)最新的 Firebase Flutter 重寫,大多數(shù) kt 文件不再需要。切換到 v2 嵌入,您使用 Kotlin 并不重要......
https://firebase.flutter.dev/docs/migration/
添加回答
舉報(bào)