InMobiBanner 未初始化

InMobiBanner is not initialized

我在集成 InMobi 横幅广告时遇到此错误。

InMobiBanner is not initialized. Ignoring InMobiBanner.load()

我使用的是 InMobi Ads SDK 7.0.4 版。我已按照文档中给出的说明进行操作。

我该如何解决这个问题?请帮我解决这个问题。

您需要在 UI 线程中创建 InMobiBanner class 实例,因为它不是 thread-safe.

官方文档说 -

备注:

  • InMobiBanner class 不是 thread-safe。必须在 UI 线程上创建横幅实例。

  • 同样,这个实例上的所有方法都必须在UI线程上调用。不这样做会导致不可预测的行为,并可能影响您通过 InMobi 获利的能力。

希望这能回答您的问题。谢谢

终于,我得到了解决方案。如果在 XML 布局中给出展示位置 ID,InMobiBanner 将无法正常工作。因此,我们必须使用 Java 代码以编程方式初始化 InMobiBanner。

但在集成 InMobi SDK 之前,请先完成您的个人资料信息并添加您的付款信息。另外,在此之前不要创建任何展示位置。

第 1 步:

使用以下代码在您的应用程序文件中初始化 InMobiSdk:

public class MyApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        InMobiSdk.init(this, "Your Account ID");
        InMobiSdk.setLogLevel(InMobiSdk.LogLevel.DEBUG);
    }

}

第 2 步:

在你的 Manifest 文件中添加 Application 文件,同时制作 application 标签的 hardwareAccelerated 属性至 true。检查下面给出的示例代码:

<application
    android:name=".MyApplication"
    android:hardwareAccelerated="true"
    ..

    <activity
        android:name="com.inmobi.rendering.InMobiAdActivity"
        android:configChanges="keyboardHidden|orientation|keyboard|smallestScreenSize|screenSize|screenLayout"
        android:resizeableActivity="false"
        android:hardwareAccelerated="true"
        android:theme="@android:style/Theme.NoTitleBar"
        tools:ignore="UnusedAttribute" />

</application

第 3 步:

在您的布局中添加一个 ViewGroup,以便我们可以在该视图中添加 InMobiBanner 视图。

<RelativeLayout
    android:id="@+id/banner"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:gravity="center" />

第 4 步:

现在在您的 Activity 或 Fragment 中添加以下 Java 代码以初始化和加载 InMobiBanner 广告。

InMobiBanner bannerAd = new InMobiBanner(this, 1234567890L);
RelativeLayout adContainer = findViewById(R.id.banner);
float density = getResources().getDisplayMetrics().density;
RelativeLayout.LayoutParams bannerLp = new RelativeLayout.LayoutParams((int) (320 * density), (int) (50 * density));
adContainer.addView(bannerAd, bannerLp);
bannerAd.load();

希望对您有所帮助。

此外,您需要添加这些行 android 清单文件

 <activity
        android:name="com.inmobi.rendering.InMobiAdActivity"
        android:configChanges="keyboardHidden|orientation|keyboard|smallestScreenSize|screenSize|screenLayout"
        android:resizeableActivity="false"
        android:hardwareAccelerated="true"
        android:theme="@android:style/Theme.NoTitleBar"
        tools:ignore="UnusedAttribute"/>