如何在多个活动中实施admob标语

时间:2019-04-24 16:49:06

标签: android android-activity kotlin admob banner

我有一个有2个活动的应用程序,我用过Kotlin。我设法实现了一个admob横幅,在主要活动上没有任何问题,现在我想要在第二个活动上使用另一个横幅,我该如何做。我到处搜索过,但是得到的解决方案是在两个活动上实现相同的横幅,但是我想要的是每个活动都有自己的横幅。请注意,我使用的不是Java的kotlin,也没有Java经验。

我的activity_main.xml看起来像这样

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == 1000 && resultCode == RESULT_OK) {
        String filePath = data.getStringExtra(FilePickerActivity.RESULT_FILE_PATH);

        try {
            BufferedReader br = new BufferedReader(new FileReader(filePath));
            String line;
            while ((line = br.readLine()) != null) {
               if (line.startsWith("h")) {
                   // Confusion
               }
            }

            br.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

我的MainActivity.kt看起来像这样

 <com.google.android.gms.ads.AdView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/adView"
            android:background="@mipmap/ic_launcher_background"
            ads:adSize="BANNER"
            ads:adUnitId="ca-app-pub-3940256099942544/6300978111"/>

当我对第二个活动执行相同的操作并运行应用程序时,第一个活动将运行并显示广告,现在当我继续进行下一个活动时,它会崩溃。到底是怎么做到的?

1 个答案:

答案 0 :(得分:0)

出现以下错误的原因:

Java.lang.RuntimeException: Unable to start activity ComponentInfo{com.poc.com.eas/com.poc.com.eas.Main2Activity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.android.gms.ads.AdView.loadAd(com.google.android.gms.ads.AdRequest)' on a null object reference.

是因为您试图在过去的活动中不再使用的同一视图上调用loadAd()方法。因此,您需要做的是为每个活动中的横幅定义一个AdView,然后在启动Main2Activity时调用adView2.loadAd(AdRequest.Builder().build())