Получение RuntimeException при интеграции Admob в приложение Android - PullRequest
2 голосов
/ 30 марта 2019

Я новичок в кодировании в Android.Недавно я сделал простое приложение для подсчета, когда я попытался добавить рекламу в свое приложение, я получил ряд ошибок.Я исправил большинство из них, но вот одна, с которой я столкнулся, чтобы решить проблему.

Вот (часть) мой XML-код:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:ads="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

   <com.google.android.gms.ads.AdView
        xmlns:ads="http://schemas.android.com/apk/res-auto"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="false"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="500dp"
        ads:adSize="BANNER"
        android:id="@+id/adView"
        ads:adUnitid="ca-app-pub-8871036677328731/4777520829">

    </com.google.android.gms.ads.AdView>

</RelativeLayout>

Вот (часть) моя MainActivity.Java:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    MobileAds.initialize(this, "\"ca-app-pub-8871036677328731~4808121041\"");
    mAdView = (AdView)findViewById(R.id.adView);
    AdRequest adRequest = new AdRequest.Builder().build();
    mAdView.loadAd(adRequest);
}

А вот (часть) мой androidManifest:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.android.courtcounter">
    <uses-permission android:name="android.permission.INTERNET">

    </uses-permission>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE">

    </uses-permission>


    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
            <meta-data
                android:name="com.google.android.gms.ads.ca-app-pub- 
        8871036677328731~4808121041"
                android:value="ca-app-pub-8871036677328731~4808121041" />
        <meta-data
            android:name="com.google.android.gms.ads.AD_MANAGER_APP"
            android:value="true"/>

        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

Вот ошибка, которую я получаю:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.android.courtcounter.MainActivity}:
java.lang.IllegalStateException: The adSize and adUnitId must be set before loadAd is called.

Я просто пыталсячтобы посмотреть, смогу ли я добавить рекламное объявление в свое приложение.Пожалуйста, помогите решить эту проблему.

1 Ответ

0 голосов
/ 30 марта 2019

Установите эти два параметра программно перед вызовом loadAd()

ads:adSize="BANNER"
ads:adUnitid="ca-app-pub-8871036677328731/4777520829"

, например:

mAdView.setAdSize(AdSize.BANNER);
mAdView.setAdUnitId(YOUR_BANNER_ID);
..
mAdView.loadAd(adRequest);

Честно говоря, я не знаю, почему xml не работает так, как мы ожидаем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...