yandexmobile / metrica-plugin-xamarin

Xamarin plugin for Yandex AppMetrica SDK
Other
15 stars 6 forks source link

падает приложение на инциализации #3

Closed Vaylandt closed 7 years ago

Vaylandt commented 7 years ago

image

image

Vaylandt commented 7 years ago

стоит только закомментить строку с инициализацией (Activate) и всё работает

что посоветуете?

Vaylandt commented 7 years ago
> packages.config
> 
> 
> <packages>
>   <package id="Acr.Support" version="2.1.0" targetFramework="monoandroid60" />
>   <package id="Acr.UserDialogs" version="6.3.5" targetFramework="monoandroid60" />
>   <package id="AndHUD" version="1.2.0" targetFramework="monoandroid60" />
>   <package id="ExifLib.PCL" version="1.0.1" targetFramework="monoandroid60" />
>   <package id="FolderPath" version="1.1.0" targetFramework="monoandroid60" />
>   <package id="Microsoft.Bcl.Build" version="1.0.21" targetFramework="monoandroid60" />
>   <package id="MsgPack.Cli" version="0.8.0" targetFramework="monoandroid60" />
>   <package id="NControl" version="0.9.0.1" targetFramework="monoandroid60" />
>   <package id="Newtonsoft.Json" version="9.0.1" targetFramework="monoandroid60" />
>   <package id="NGraphics" version="0.4.0" targetFramework="monoandroid60" />
>   <package id="PCLSpecialFolder" version="1.1.0" targetFramework="monoandroid60" />
>   <package id="PCLStorage" version="1.0.2" targetFramework="monoandroid60" />
>   <package id="Plugin.CurrentActivity" version="1.0.1" targetFramework="monoandroid60" />
>   <package id="Plugin.Permissions" version="1.2.1" targetFramework="monoandroid60" />
>   <package id="SkiaSharp" version="1.54.0" targetFramework="monoandroid60" />
>   <package id="Splat" version="1.6.2" targetFramework="monoandroid60" />
>   <package id="Xam.Plugin.FilePicker" version="1.1.0" targetFramework="monoandroid60" />
>   <package id="Xam.Plugin.Geolocator" version="4.0.0-beta4" targetFramework="monoandroid60" />
>   <package id="Xam.Plugin.Media" version="2.6.3.0-beta" targetFramework="monoandroid60" />
>   <package id="Xamarin.Android.Support.Animated.Vector.Drawable" version="23.3.0" targetFramework="monoandroid60" />
>   <package id="Xamarin.Android.Support.CustomTabs" version="23.0.1.3" targetFramework="monoandroid60" />
>   <package id="Xamarin.Android.Support.Design" version="23.3.0" targetFramework="monoandroid60" />
>   <package id="Xamarin.Android.Support.v4" version="23.3.0" targetFramework="monoandroid60" />
>   <package id="Xamarin.Android.Support.v7.AppCompat" version="23.3.0" targetFramework="monoandroid60" />
>   <package id="Xamarin.Android.Support.v7.CardView" version="23.3.0" targetFramework="monoandroid60" />
>   <package id="Xamarin.Android.Support.v7.MediaRouter" version="23.3.0" targetFramework="monoandroid60" />
>   <package id="Xamarin.Android.Support.v7.RecyclerView" version="23.3.0" targetFramework="monoandroid60" />
>   <package id="Xamarin.Android.Support.Vector.Drawable" version="23.3.0" targetFramework="monoandroid60" />
>   <package id="Xamarin.FFImageLoading" version="2.1.7-pre-132" targetFramework="monoandroid60" />
>   <package id="Xamarin.FFImageLoading.Forms" version="2.1.7-pre-132" targetFramework="monoandroid60" />
>   <package id="Xamarin.FFImageLoading.Transformations" version="2.1.7-pre-132" targetFramework="monoandroid60" />
>   <package id="Xamarin.Forms" version="2.3.1.114" targetFramework="monoandroid60" />
>   <package id="Xamarin.Forms.CarouselView" version="2.3.0-pre2" targetFramework="monoandroid60" />
>   <package id="Yandex.Metrica.Xamarin" version="1.1.0" targetFramework="monoandroid60" />
> </packages>
bamx23 commented 7 years ago

Судя по всему у вас насколько процессов в приложении. Такой баг есть у Xamarin: Mono Runtime загружается только в главном процессе, отчего в процессе АппМетрики, при его отсутствии, возникает падение. Временное решение: заставить АппМетрику работать в процессе приложения: вручную добавить в AndroidManifest.xml необходимые правки согласно документации https://tech.yandex.ru/metrica-mobile-sdk/doc/mobile-sdk-dg/concepts/android-initialize-docpage/ (вкладка JAR), но убрать атрибут android:process=":Metrica".

Vaylandt commented 7 years ago

@bamx23 , спасибо за оперативный ответ! Кстати, попробовал все рекомендации для манифеста и так и сяк... падает. Но нашел что за второй процесс, закомментил, метрика заработала, пока не знаю чем это мне обернется, уже не помню зачем делал это файл...

image

bamx23 commented 7 years ago

Вы закоментировали кастомный Application класс, в котором и содержится проблема, приводящая к падению в процессе АппМетрики: при старте данного процесса(в котором, как я писал ранее, нет Mono Runtime) Если он вам был и правда не нужен, то всё хорошо и будет работать как надо. Если же всё же понадобится сделать свой Application класс, то надо будет разбираться с AndroidManifest.xml.