You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter默认生成Kotlin类而非Java类,如何配置使用Java?

解决Flutter默认生成Kotlin MainActivity(已禁用Kotlin需用Java)的配置方法

我太懂这种踩坑的憋屈感了——明明已经想着禁用Kotlin用Java,结果新项目还是自动生成Kotlin的MainActivity,折腾半天都没搞定。别慌,下面分新建项目和已创建项目两种场景,给你一步步捋清楚配置方法:


一、新建项目时直接指定Java语言(从根源避免问题)

如果你还没创建项目,或者打算重新建一个,直接用以下方式就能确保生成Java的MainActivity:

方式1:命令行创建

打开终端,执行创建命令时明确指定Android语言为Java:

flutter create --platforms android --android-language java your_project_name

这样生成的项目里,Android端默认就是Java的MainActivity,不会有任何Kotlin文件。

方式2:Android Studio图形界面创建

在Android Studio中选择New Flutter Project后,到Platforms步骤:

  • 确保勾选需要的平台(至少选Android)
  • 找到Android language选项,直接选择Java,而非默认的Kotlin
  • 完成后续步骤,生成的项目就会是Java环境的Android端。

二、已创建的项目改为Java环境(修复现有项目)

如果已经创建了项目,默认生成了Kotlin的MainActivity,按以下步骤修改:

1. 删除Kotlin的MainActivity文件

找到路径:android/app/src/main/kotlin/[你的包名]/MainActivity.kt,直接删除这个文件和对应的kotlin目录(如果里面没有其他文件的话)。

2. 创建Java版的MainActivity

在路径android/app/src/main/java/[你的包名]/下,新建MainActivity.java文件,粘贴以下标准代码(注意替换成你的包名):

package com.yourpackage.name; // 这里改成你自己的包名

import io.flutter.embedding.android.FlutterActivity;

public class MainActivity extends FlutterActivity {
}

3. 修改AndroidManifest.xml配置

打开android/app/src/main/AndroidManifest.xml,确保activity标签的android:name指向你新建的Java类,比如:

<activity
    android:name=".MainActivity"
    android:exported="true"
    android:launchMode="singleTop"
    android:theme="@style/LaunchTheme"
    android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
    android:hardwareAccelerated="true"
    android:windowSoftInputMode="adjustResize">
    <!-- 其他内容保持不变 -->
</activity>

4. 移除Android端的Kotlin相关配置

打开android/app/build.gradle文件,做以下修改:

  • 移除顶部的Kotlin插件:删除id 'kotlin-android'这一行
  • 移除dependencies中的Kotlin依赖:如果有implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"这类代码,直接删除
  • 确认sourceSets配置中包含Java路径(一般默认已经有,无需修改):
    sourceSets {
        main.java.srcDirs += 'src/main/java'
    }
    

5. 清理并重建项目

在终端执行以下命令,确保缓存清理干净:

flutter clean
flutter pub get
flutter run

小提示

如果修改后还是报错,检查一下包名是否完全一致——Java文件的包名、AndroidManifest里的包名,还有build.gradle里的applicationId必须统一,不然会找不到Activity类。

内容的提问来源于stack exchange,提问作者adnan ijaz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:17:32