【问题标题】:Add flutter to existing android app "Cannot resolve symbol Flutter"将颤振添加到现有的 android 应用程序“无法解析符号颤振”
【发布时间】:2020-09-03 04:14:26
【问题描述】:

我正在尝试通过媒体文章和一些 YouTube 视频在现有的 android 应用程序中添加颤振模块,并按照说明逐步操作。但问题是,如果我尝试在 MainActivity.java 中添加此代码,那么它会显示一个错误“无法解析符号 Flutter”,意味着如果我输入 Flutter.,那么它不会显示 createView。是不是代码变了?

View flutterView=Flutter.createView(MainActivity.this,getLifecycle(),"r1");
FrameLayout.LayoutParams frameLayout=new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT);
addContentView(flutterView,frameLayout);

【问题讨论】:

  • 你添加了flutter依赖吗?
  • @SanjaySharma 是的,我添加了颤振依赖项implementation project(':flutter')
  • 你是否在 settings.gradle 中添加了这个 setBinding(new Binding([gradle: this])) evaluate(new File( settingsDir.parentFile, 'my_flutter/.android/include_flutter.groovy' ))
  • @SanjaySharma 是的。
  • 你尝试清理 gradle 缓存并重建它

标签: java android android-studio flutter


【解决方案1】:

我也是。 Flutter.createView 不工作。 但我找到了这个解决方案。 在您的 Manifest.xml 中,为 Flutter 添加元数据。

<activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:theme="@style/Theme.Fludroid.NoActionBar">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <meta-data
            android:name="io.flutter.Entrypoint"
            android:value="main"
            />
    </activity>

在你的布局文件中使用 FlutterView

<io.flutter.embedding.android.FlutterView
    android:id="@+id/flutter_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

在 Activity 的 onCreate 方法中附加 Flutter

if (flutterEngine == null) {
        flutterEngine = FlutterEngine(requireContext())
        flutterEngine!!.dartExecutor.executeDartEntrypoint(
            DartExecutor.DartEntrypoint(FlutterMain.findAppBundlePath(), "main")
        )
    }
    flutterView = view.findViewById(R.id.flutter_view)
    flutterView?.attachToFlutterEngine(flutterEngine!!)

在 main.dart 中添加 @pragma('vm:entry-point')

@pragma('vm:entry-point')
void main() => runApp(MyApp());

祝你好运。

【讨论】:

    猜你喜欢
    • 2020-03-14
    • 2021-06-20
    • 1970-01-01
    • 2021-03-20
    • 1970-01-01
    • 1970-01-01
    • 2022-11-02
    • 2020-01-09
    • 2020-07-05
    相关资源
    最近更新 更多