亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將現有 Flutter Kotlin 項目轉換為 Flutter Java 項目

將現有 Flutter Kotlin 項目轉換為 Flutter Java 項目

繁星淼淼 2024-01-05 10:51:58
我使用默認值創建了一個 Flutter 項目,即 Android 的 Kotlin 和 iOS 的 Swift。在項目進行到一半時,我需要集成需要 Java 的第 3 方 Android SDK。我可以在創建 Flutter 項目后將其轉換為 Java for Android 嗎?我知道我需要使用 Platform Channels 將本機代碼與我的 Flutter 應用程序集成,這不是我關心的。
查看完整描述

6 回答

?
青春有我

TA貢獻1784條經驗 獲得超8個贊

我遇到了同樣的問題,對我來說這個解決方案有效。

從 android/app/src/main/kotlin -> android/app/src/main/java 移動文件夾 com.example.test_app (任何名稱)

將 MainActivity.kt 替換為 Java 版本,或復制到此處


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'

}

在同一位置替換以下內容:


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'

}


    查看完整回答
    反對 回復 2024-01-05
    ?
    慕俠2389804

    TA貢獻1719條經驗 獲得超6個贊

    默認情況下,flutter 模板支持使用 Kotlin 編寫 Android 代碼,或使用 Swift 編寫 iOS 代碼。要使用 Java 或 Objective-C,請使用 -i 和/或 -a 標志:

    在終端中運行:flutter create -i objc -a java your_project_name.

    如果您想更改現有的應用程序平臺語言選擇,作為解決方法,您可以刪除 android/ 目錄并運行flutter create -a java以重新創建新語言選擇的目錄(ios/ 和 Swift 相同)。不過,您需要重新應用自定義更改。


    查看完整回答
    反對 回復 2024-01-05
    ?
    蠱毒傳說

    TA貢獻1895條經驗 獲得超3個贊

    如果您從 cmd 創建新項目:

    flutter create -i objc -a java project_name

    注意:-a 表示 android 標志,-i 表示 ios 標志。如果你只想要java,你可以刪除-i objc

    如果您想轉換現有項目:

    flutter create -a java .

    轉換現有項目時,上行末尾有一個點


    查看完整回答
    反對 回復 2024-01-05
    ?
    鳳凰求蠱

    TA貢獻1825條經驗 獲得超4個贊

    flutter create -a java .在您的項目目錄中 運行

    flutter create:如果在已存在的項目上運行,這將修復該項目,重新創建丟失的所有文件。

    如果目錄僅包含生成的示例代碼,請刪除該kotlin目錄android/src/main


    查看完整回答
    反對 回復 2024-01-05
    ?
    阿波羅的戰車

    TA貢獻1862條經驗 獲得超6個贊

    只是想跟進這個問題,因為今天我必須將 Flutter 項目中的默認語言從 Kotlin 更改為 Java,并且遇到了一個小痛點,我發現flutter create -i swift -a java .在我的項目目錄中運行可以工作,但導致我的項目名稱根據它所在的目錄進行更改,如果該目錄名稱是我的“包名稱”的最后一個值(即:com.flutter.app并且目錄是“app”),那么D8: Program type already present:當編譯。

    這是由于原始 Kotlin src 的 MainActivity 造成的。我發現我必須(在將我的源代碼簽入我想在包名稱中使用的“app”文件夾中之后),首先刪除這個現有android/app/src/main/kotlin文件夾,然后運行flutter create -i swift -a java .命令。

    請注意,我沒有將任何獨特的代碼添加到 Kotlin 文件夾中,因此無需擔心刪除該文件夾。

    希望這可以幫助遇到類似問題的其他人。


    查看完整回答
    反對 回復 2024-01-05
    ?
    慕碼人8056858

    TA貢獻1803條經驗 獲得超6個贊

    我也在使用 Kotlin /Flutter。

    通過最新的 Firebase Flutter 重寫,大多數 kt 文件不再需要。切換到 v2 嵌入,您使用 Kotlin 并不重要......

    https://firebase.flutter.dev/docs/migration/


    查看完整回答
    反對 回復 2024-01-05
    • 6 回答
    • 0 關注
    • 654 瀏覽
    慕課專欄
    更多

    添加回答

    舉報

    0/150
    提交
    取消
    微信客服

    購課補貼
    聯系客服咨詢優惠詳情

    幫助反饋 APP下載

    慕課網APP
    您的移動學習伙伴

    公眾號

    掃描二維碼
    關注慕課網微信公眾號