Flutter 注册原生广告工厂

问题描述

我正在阅读此文档:https://pub.dev/packages/firebase_admob

但我不明白这一点:

这取决于您是否使用 嵌入 V1 或嵌入 V2

我怎么知道?

我还发现了一个包含此内容的 MainActivity.kt:

package com.drodriguez.my_rents

import androidx.annotation.NonNull;
import io.Flutter.embedding.android.FlutterActivity
import io.Flutter.embedding.engine.FlutterEngine
import io.Flutter.plugins.GeneratedpluginRegistrant

import android.os.Build
import android.view.ViewTreeObserver
import android.view.WindowManager
class MainActivity: FlutterActivity() {
    override fun configureFlutterEngine(@NonNull FlutterEngine: FlutterEngine) {
        GeneratedpluginRegistrant.registerWith(FlutterEngine);
    }
}

但它不是 .java

解决方法

在您的 AndroidManifest.xml 文件中,您将找到以下条目:

<meta-data
  android:name="flutterEmbedding"
  android:value="2" />

这将告诉您您的项目正在使用哪个 Embedding 版本。
很可能是版本 2,因为这是自 FLutter 版本 1.2 以来的标准。

另见参考:
Android v1 embedding app and plugin creation deprecation

关于 firebase_admob 包:
随着 Flutter 2 和 null-safety 的到来,我建议您使用新的 google_mobile_ads pacakge。 google_mobile_ads

旧包将很快被弃用。