#c# #android #xamarin.forms #firebase-admob
#c# #Android #xamarin.forms #firebase-admob
Вопрос:
Я добавил Xamarin.Firebase.Реклама в моем Xamarin.Формирует проект Android и настраивает его с помощью идентификаторов теста — Тестовый баннер отображается правильно на эмуляторе. Мои личные идентификаторы все еще не утверждены и т.д. Когда я развертываю приложение на любом устройстве Android, приложение вылетает при запуске. Приложение завершит работу, даже если я удалю весь код и оставлю только Xamarin.Firebase.Объявления в ссылках. То же самое касается Xamarin.Firebase.Ads.Lite — на всех виртуальных устройствах проблем не было, но приложение по-прежнему вылетает на реальном устройстве.
- MainActivity.cs — перед инициализацией()
Android.Gms.Ads.MobileAds.Initialize(ApplicationContext, "ca-app-pub-xxxx/xxxx");
- Android MAnifest.xml
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="28" />
<application android:label="xxx xxx" android:theme="@style/MainTheme" android:icon="@drawable/MainIcon">
<provider android:name="android.support.v4.content.FileProvider" android:authorities="${applicationId}.provider" android:exported="false" android:grantUriPermissions="true">
<meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/provider_paths" />
</provider>
<meta-data android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-xxxx~xxxx"/>
</application>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
-
У меня есть экран-заставка, который отлично работает без рекламы (сначала он отображается, затем приложение вылетает), MainActivity указывает на пользовательскую тему Theme = «@style / MyTheme.Заставка » затем MainActivity загружает актуальную тему в onCreate
setTheme(ресурс.Стиль.Основная тема);
-
На главной странице есть:
public class AdMobView : View { } <local:AdMobView x:Name="ADView" WidthRequest="320" HeightRequest="50" />
- AdMobRender:
public class AdMobViewRenderer : ViewRenderer<AdMobView, AdView> { public AdMobViewRenderer(Context context) : base(context) { } private AdView CreateAdView() { var adView = new AdView(Context) { AdSize = AdSize.Banner, AdUnitId = "ca-app-pub-xxxx/xxxx", LayoutParameters = new LinearLayout.LayoutParams(LayoutParams.MatchParent,LayoutParams.MatchParent) }; adView.LoadAd(new AdRequest.Builder().Build()); return adView; } protected override void OnElementChanged(ElementChangedEventArgs<AdMobView> e) { base.OnElementChanged(e); if (e.NewElement != null amp;amp; Control == null) { SetNativeControl(CreateAdView()); } } }
Я использую:
VS19 Xamarin.Forms 4.8.0.1269
Xamarin.Essentials 1.5.3.2
Xamarin.Firebase.Lite 71.1601.4
Target Android Ver: 9.0 - 28 API
Min Version: 21 API
Спасибо.
РЕДАКТИРОВАТЬ: Чистое решение с использованием только AddMod не приводит к сбою на реальных устройствах. Я могу запустить свое приложение в режиме отладки через VS19 на реальном устройстве без сбоев — выпущенное / подписанное приложение все еще вылетает на реальном устройстве.
Ответ №1:
О боже, у меня было сокращение кода, и ссылка не была настроена в настройках Android.
Теперь запущен и работает без сбоев.
Спасибо.