需要将 AdMob 广告 ID 放入 java 代码中? (Android 工作室)

Need to put AdMob ad id in java code? (Android Studio)

例如,在我的一个应用程序屏幕上有一个横幅广告,您在 xml 布局中有以下代码:

<com.google.android.gms.ads.AdView
        android:id="@+id/adViewPrincipal"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        ads:adSize="SMART_BANNER"
        ads:adUnitId="@string/adId" />

并且在java代码中还有如下代码:

MobileAds.initialize(this, String.valueOf(R.string.adId));
        adRequest = new AdRequest.Builder().build();
        mAdView.loadAd(adRequest);

似乎一切都在使用这个测试 id,但是当我在这个 java 代码中使用 ID 参数时,留下:

MobileAds.initialize(this);

MobileAds.initialize(this, "");

广告保持运行在应用程序中没有任何错误,所以我只需要在XML中设置广告ID吗?在我看到的所有教程中,是否有人将 ID 也放在 java 代码中。如果我什么都不带参数,就没有问题,就像这个参数没用一样,当我从 XML 代码中获取 ID 时,应用程序会崩溃。那么我可以将广告 ID 仅放在 XML 代码中吗?

你能以编程方式尝试一切吗:-

LinearLayout adContainer = <container>;
AdView adView = new AdView(activity)
adView.setAdSize(AdSize.SMART_BANNER);
adView.setAdUnitId(<your-publisher-id>); // you can use id from constants

// Initiate a generic request to load it with an ad
AdRequest adRequest = new AdRequest();
adRequest.addTestDevice(AdRequest.TEST_EMULATOR);
adView.loadAd(adRequest);

// Place the ad view.
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
adContainer.addView(adView, params);

你传递的初始化的第二个参数是错误的。 应该是admob的app-id on ad-unit id。 ad id一般只在xml views中使用,其中app_id用于用于首次初始化广告的代码。阅读更多 here

MobileAds.initialize(this, getResources().getString(R.string.app_id));