Hem*_*Odd 10 java android android-studio flutter flutter-platform-channel
我正在尝试在 Flutter 项目中创建一个平台通道来访问特定于 Android 的 java 代码。我正在 Android Studio 中创建一个新的 Flutter 应用程序项目,并遵循本教程,其中提到:
1- 导航到 Flutter 应用所在的目录,然后选择其中的 android 文件夹。单击确定。
2- 打开位于项目视图中 java 文件夹中的 MainActivity.java 文件。
但是,该项目仅包含 MainActivity.kt 而不是 Java:
我尝试使用上下文菜单>新建>活动在java文件夹中手动创建一个新活动,但它不起作用。
编辑:
对此的最佳解决方案(如果您可以创建新项目)是在设置项目时取消选中“Include Kotlin support for Android code”。这会自动创建 MainActivity.java。Objective-C 和 Swift 也是如此。如果您想使用 Objective-C,请取消选中“Include Swift support for iOS code”
J. *_*Saw 30
如果您在这里是因为您正在遵循设置firebase_messaging的步骤,您可以查看此答案并Application.kt在您的MainActivity.kt文件旁边创建文件(而不是 Java)。这里是:
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"));
}
}
Run Code Online (Sandbox Code Playgroud)
小智 6
flutter create -a java .
Run Code Online (Sandbox Code Playgroud)
试试这个命令。和 '。' 最后。它代表当前项目目录。从项目根文件夹应用此命令。此命令将尝试使用 java 重新创建 android 项目(这将设置您的 MainActiviy.java)。它不会影响当前设置的清单或任何其他与 Firebase 相关的设置。
您可以简单地使用 Java 代码创建类文件 MainActivity.java 并删除 Kotlin 类文件。它应该工作:
public class MainActivity extends FlutterActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
GeneratedPluginRegistrant.registerWith(this);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14606 次 |
| 最近记录: |