Flutter项目:主要活动.java缺失

我正在尝试在Flutter项目中创建一个平台通道来访问Android特定的java代码。我正在Android Studio中创建一个新的Flutter应用程序项目,并遵循本教程中提到的:

1-导航到包含Flutter应用程序的目录,然后选择其中的Android文件夹。单击“确定”。

2- 在“项目”视图中打开位于 java 文件夹中的 MainActivity.java文件。

但是,该项目仅包含 MainActivity.kt,不包含 Java:

enter image description here

我尝试使用上下文菜单在java文件夹中手动创建新活动>New>Activity,但它不起作用。


编辑:

为此,最好的解决方案(如果您可以创建一个新项目)是在设置项目时取消选中“包括对Android代码的Kotlin支持”。这会自动创建 MainActivity.java。Objective-C 和 Swift 也是如此。如果你想使用 Objective-C,请取消选中“包括 Swift 对 iOS 代码的支持”

enter image description here


答案 1

如果您在这里是因为您正在执行设置firebase_messaging的步骤,则可以查看此答案,然后只需在文件旁边创建文件(而不是Java)。在这里:Application.ktMainActivity.kt

package com.example.yourapp

import io.flutter.app.FlutterApplication
import io.flutter.plugin.common.PluginRegistry
import io.flutter.plugin.common.PluginRegistry.PluginRegistrantCallback
import io.flutter.plugins.GeneratedPluginRegistrant
import io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService

class Application : FlutterApplication(), PluginRegistrantCallback {

    override fun onCreate() {
        super.onCreate()
        FlutterFirebaseMessagingService.setPluginRegistrant(this);
    }

    override fun registerWith(registry: PluginRegistry?) {
        io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin.registerWith(registry?.registrarFor("io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin"));
    }
}

答案 2
flutter create -a java .

请尝试此命令。末尾带有“.”。它表示当前项目目录。从项目根文件夹应用此命令。此命令将尝试使用java重新创建Android项目(这将设置您的MainActiviy.java)。这不会影响当前设置清单或任何其他与 firebase 相关的设置。


推荐