#android #kotlin #rotation #admob
#Android #kotlin #вращение #admob
Вопрос:
Я новичок в создании мобильных приложений и пытаюсь добавить рекламный баннер в свое первое приложение. До сих пор я использовал тестовое объявление, и оно прекрасно работает в портретной и альбомной ориентации.
Но когда я использую свой настоящий AdUnitId, что-то идет не так. Реклама видна в портретном режиме, но когда я хочу повернуть экран, появляется информация о том, что, к сожалению, мое приложение остановлено. Что любопытно, так происходит не всегда. Иногда это работает идеально.
Я хотел бы добавить, что когда я все делал с инструкциями по внедрению от AdMob.
У вас есть какие-нибудь идеи, как это исправить?
@Ircover, @EzequielAdrian Вот мой AndroidManifest.xml файл:
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher_round"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme"
android:fullBackupContent="true">
<activity android:name=".MainActivity2">
</activity>
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<meta-data android:name="preloaded_fonts" android:resource="@array/preloaded_fonts"/>
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-some_numbers~some_numbers"/>
</application>
Вот фрагмент из activity_main.xml с рекламным баннером:
<com.google.android.gms.ads.AdView
android:id="@ id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
app:adSize="BANNER"
app:adUnitId="ca-app-pub-6404370649958393/3303930979"
app:layout_constraintTop_toBottomOf="@ id/button1"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintHorizontal_bias="0.494"
app:layout_constraintVertical_bias="0.672">
</com.google.android.gms.ads.AdView>
Вот фрагмент MainActivity.kt:
class MainActivity : AppCompatActivity() {
lateinit var mAdView : AdView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
MobileAds.initialize(this) {}
mAdView = findViewById(R.id.adView)
val adRequest = AdRequest.Builder().build()
mAdView.loadAd(adRequest)
}
}
Как это выглядит до поворота, и после вращения.
@Ircover, вот журналы из Logcat:
12-08 15:11:04.266 18313-18390/rand.random.randomizer E/eglCodecCommon: glUtilsParamSize: unknow param 0x000085b5
12-08 15:11:04.290 18313-18390/rand.random.randomizer E/eglCodecCommon: glUtilsParamSize: unknow param 0x000085b5
12-08 15:11:04.305 18313-18390/rand.random.randomizer E/eglCodecCommon: glUtilsParamSize: unknow param 0x000085b5
12-08 15:11:04.318 18313-18390/rand.random.randomizer E/eglCodecCommon: glUtilsParamSize: unknow param 0x000085b5
12-08 15:11:04.332 18313-18390/rand.random.randomizer E/eglCodecCommon: glUtilsParamSize: unknow param 0x000085b5
12-08 15:11:04.357 18313-18313/rand.random.randomizer W/ResourceType: No package identifier when getting value for resource number 0x00000001
12-08 15:11:04.360 18313-18313/rand.random.randomizer D/AndroidRuntime: Shutting down VM
12-08 15:11:04.362 18313-18313/rand.random.randomizer E/AndroidRuntime: FATAL EXCEPTION: main
Process: rand.random.randomizer, PID: 18313
java.lang.RuntimeException: Unable to start activity ComponentInfo{rand.random.randomizer/rand.random.randomizer.MainActivity}: android.content.res.Resources$NotFoundException: Resource ID #0x1
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3912)
at android.app.ActivityThread.access$900(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1284)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x1
at android.content.res.Resources.getValue(Resources.java:1233)
at androidx.appcompat.widget.ResourceManagerInternal.loadDrawableFromDelegates(ResourceManagerInternal.java:252)
at androidx.appcompat.widget.ResourceManagerInternal.getDrawable(ResourceManagerInternal.java:139)
at androidx.appcompat.widget.ResourceManagerInternal.getDrawable(ResourceManagerInternal.java:132)
at androidx.appcompat.content.res.AppCompatResources.getDrawable(AppCompatResources.java:104)
at androidx.appcompat.widget.AppCompatImageHelper.setImageResource(AppCompatImageHelper.java:86)
at androidx.appcompat.widget.AppCompatImageView.setImageResource(AppCompatImageView.java:94)
at rand.random.randomizer.MainActivity.onCreate(MainActivity.kt:32)
at android.app.Activity.performCreate(Activity.java:5937)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3912)
at android.app.ActivityThread.access$900(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1284)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
12-08 15:11:10.358 18313-18390/rand.random.randomizer D/EGL_emulation: eglMakeCurrent: 0xa2afd100: ver 2 0 (tinfo 0xa2adb6a0)
Комментарии:
1. Можете ли вы опубликовать сообщение об ошибке? Без подробностей мы едва ли сможем вам помочь.
2. покажите, пожалуйста, какой-нибудь код.
3. Нам нужно знать, что пошло не так, поэтому, пожалуйста, опубликуйте сведения об исключении. Вы можете найти его в Logcat сразу после сбоя приложения.
Ответ №1:
Возможно, вам потребуется переопределить метод onConfigurationChanged и написать коды, чтобы обновить там добавить представление.