Xamarin.Android crash only on Android 10

南笙酒味 提交于 2021-01-28 09:11:36

问题


I have a project that is working perfectly in any version below api 29.

When i try to run in a Android 10 device the app crashes after show the splash screen, debugger show this error:

Java.Lang.RuntimeException: Binary XML file line #17 in com.panterafood.garcom:layout/abc_screen_simple: Binary XML file line #17 in com.panterafood.garcom:layout/abc_screen_simple: Error inflating class android.support.v7.widget.FitWindowsLinearLayout
  at Java.Interop.JniEnvironment+InstanceMethods.CallNonvirtualVoidMethod (Java.Interop.JniObjectReference instance, Java.Interop.JniObjectReference type, Java.Interop.JniMethodInfo method, Java.Interop.JniArgumentValue* args) [0x0008e] in <fc4bff518fb145b08cf1d4e7e1c0cbf6>:0
  at Java.Interop.JniPeerMembers+JniInstanceMethods.InvokeVirtualVoidMethod (System.String encodedMember, Java.Interop.IJavaPeerable self, Java.Interop.JniArgumentValue* parameters) [0x0005d] in <fc4bff518fb145b08cf1d4e7e1c0cbf6>:0
  at Android.App.Activity.SetContentView (System.Int32 layoutResID) [0x00022] in <4a76267a9af54c85b9b3584cc8303037>:0
  at Garcom.Activities.BaseActivity.OnCreate (Android.OS.Bundle bundle) [0x00040] in <d242ef43b0c34a7b9894c0c17a1c6cf5>:0
  at Garcom.Activities.Login.OnCreate (Android.OS.Bundle savedInstanceState) [0x00001] in <d242ef43b0c34a7b9894c0c17a1c6cf5>:0
  at Android.App.Activity.n_OnCreate_Landroid_os_Bundle_ (System.IntPtr jnienv, System.IntPtr native__this, System.IntPtr native_savedInstanceState) [0x0000f] in <4a76267a9af54c85b9b3584cc8303037>:0
  at at (wrapper dynamic-method) Android.Runtime.DynamicMethodNameCounter.1(intptr,intptr,intptr)
  at android.view.InflateException: Binary XML file line #17 in com.panterafood.garcom:layout/abc_screen_simple: Binary XML file line #17 in com.panterafood.garcom:layout/abc_screen_simple: Error inflating class android.support.v7.widget.FitWindowsLinearLayout
  at Caused by: android.view.InflateException: Binary XML file line #17 in com.panterafood.garcom:layout/abc_screen_simple: Error inflating class android.support.v7.widget.FitWindowsLinearLayout
  at Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object java.lang.reflect.Field.get(java.lang.Object)' on a null object reference
  at at uk.co.chrisjenx.calligraphy.ReflectionUtils.getValue(ReflectionUtils.java:25)
  at at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.createCustomViewInternal(CalligraphyLayoutInflater.java:203)
  at at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.access$000(CalligraphyLayoutInflater.java:20)
  at at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater$PrivateWrapperFactory2.onCreateView(CalligraphyLayoutInflater.java:302)
  at at android.view.LayoutInflater$FactoryMerger.onCreateView(LayoutInflater.java:239)
  at at android.view.LayoutInflater.tryCreateView(LayoutInflater.java:1069)
  at at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:997)
  at at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:961)
  at at android.view.LayoutInflater.inflate(LayoutInflater.java:659)
  at at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.inflate(CalligraphyLayoutInflater.java:60)
  at at android.view.LayoutInflater.inflate(LayoutInflater.java:534)
  at at android.view.LayoutInflater.inflate(LayoutInflater.java:481)
  at at android.support.v7.app.AppCompatDelegateImpl.createSubDecor(AppCompatDelegateImpl.java:631)
  at at android.support.v7.app.AppCompatDelegateImpl.ensureSubDecor(AppCompatDelegateImpl.java:518)
  at at android.support.v7.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:466)
  at at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
  at at crc64f084fe566d431cdf.Login.n_onCreate(Native Method)
  at at crc64f084fe566d431cdf.Login.onCreate(Login.java:30)
  at at android.app.Activity.performCreate(Activity.java:7802)
  at at android.app.Activity.performCreate(Activity.java:7791)
  at at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1299)
  at at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3245)
  at at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409)
  at at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
  at at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
  at at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
  at at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016)
  at at android.os.Handler.dispatchMessage(Handler.java:107)
  at at android.os.Looper.loop(Looper.java:214)
  at at android.app.ActivityThread.main(ActivityThread.java:7356)
  at at java.lang.reflect.Method.invoke(Native Method)
  at at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
  at at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)

Java.Lang.RuntimeException: Binary XML file line #17 in com.panterafood.garcom:layout/abc_screen_simple: Binary XML file line #17 in com.panterafood.garcom:layout/abc_screen_simple: Error inflating class android.support.v7.widget.FitWindowsLinearLayout
  at Java.Interop.JniEnvironment+InstanceMethods.CallNonvirtualVoidMethod (Java.Interop.JniObjectReference instance, Java.Interop.JniObjectReference type, Java.Interop.JniMethodInfo method, Java.Interop.JniArgumentValue* args) [0x0008e] in <fc4bff518fb145b08cf1d4e7e1c0cbf6>:0
  at Java.Interop.JniPeerMembers+JniInstanceMethods.InvokeVirtualVoidMethod (System.String encodedMember, Java.Interop.IJavaPeerable self, Java.Interop.JniArgumentValue* parameters) [0x0005d] in <fc4bff518fb145b08cf1d4e7e1c0cbf6>:0
  at Android.App.Activity.SetContentView (System.Int32 layoutResID) [0x00022] in <4a76267a9af54c85b9b3584cc8303037>:0
  at Garcom.Activities.BaseActivity.OnCreate (Android.OS.Bundle bundle) [0x00040] in <d242ef43b0c34a7b9894c0c17a1c6cf5>:0
  at Garcom.Activities.Login.OnCreate (Android.OS.Bundle savedInstanceState) [0x00001] in <d242ef43b0c34a7b9894c0c17a1c6cf5>:0
  at Android.App.Activity.n_OnCreate_Landroid_os_Bundle_ (System.IntPtr jnienv, System.IntPtr native__this, System.IntPtr native_savedInstanceState) [0x0000f] in <4a76267a9af54c85b9b3584cc8303037>:0
  at at (wrapper dynamic-method) Android.Runtime.DynamicMethodNameCounter.1(intptr,intptr,intptr)
  at android.view.InflateException: Binary XML file line #17 in com.panterafood.garcom:layout/abc_screen_simple: Binary XML file line #17 in com.panterafood.garcom:layout/abc_screen_simple: Error inflating class android.support.v7.widget.FitWindowsLinearLayout
  at Caused by: android.view.InflateException: Binary XML file line #17 in com.panterafood.garcom:layout/abc_screen_simple: Error inflating class android.support.v7.widget.FitWindowsLinearLayout
  at Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object java.lang.reflect.Field.get(java.lang.Object)' on a null object reference
  at at uk.co.chrisjenx.calligraphy.ReflectionUtils.getValue(ReflectionUtils.java:25)
  at at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.createCustomViewInternal(CalligraphyLayoutInflater.java:203)
  at at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.access$000(CalligraphyLayoutInflater.java:20)
  at at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater$PrivateWrapperFactory2.onCreateView(CalligraphyLayoutInflater.java:302)
  at at android.view.LayoutInflater$FactoryMerger.onCreateView(LayoutInflater.java:239)
  at at android.view.LayoutInflater.tryCreateView(LayoutInflater.java:1069)
  at at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:997)
  at at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:961)
  at at android.view.LayoutInflater.inflate(LayoutInflater.java:659)
  at at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.inflate(CalligraphyLayoutInflater.java:60)
  at at android.view.LayoutInflater.inflate(LayoutInflater.java:534)
  at at android.view.LayoutInflater.inflate(LayoutInflater.java:481)
  at at android.support.v7.app.AppCompatDelegateImpl.createSubDecor(AppCompatDelegateImpl.java:631)
  at at android.support.v7.app.AppCompatDelegateImpl.ensureSubDecor(AppCompatDelegateImpl.java:518)
  at at android.support.v7.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:466)
  at at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
  at at crc64f084fe566d431cdf.Login.n_onCreate(Native Method)
  at at crc64f084fe566d431cdf.Login.onCreate(Login.java:30)
  at at android.app.Activity.performCreate(Activity.java:7802)
  at at android.app.Activity.performCreate(Activity.java:7791)
  at at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1299)
  at at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3245)
  at at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409)
  at at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
  at at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
  at at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
  at at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016)
  at at android.os.Handler.dispatchMessage(Handler.java:107)
  at at android.os.Looper.loop(Looper.java:214)
  at at android.app.ActivityThread.main(ActivityThread.java:7356)
  at at java.lang.reflect.Method.invoke(Native Method)
  at at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
  at at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)

About Visual Studio:

=== Visual Studio Community 2019 for Mac ===

Version 8.6.8 (build 2)
Installation UUID: 62dd4eec-8f9a-439f-b01d-4ea3930db8fc
    GTK+ 2.24.23 (Raleigh theme)
    Xamarin.Mac 6.18.0.23 (d16-6 / 088c73638)

    Package version: 610000106

=== Mono Framework MDK ===

Runtime:
    Mono 6.10.0.106 (2019-12/77769615db1) (64-bit)
    Package version: 610000106

=== Roslyn (Language Service) ===

3.6.0-3.20210.9+4eafdcb1bcbd8d3573f2ba6065e56d9b9ce4f8a3

=== NuGet ===

Versão: 5.6.0.6591

=== SDK do .NET Core ===

SDK: /usr/local/share/dotnet/sdk/3.1.302/Sdks
Versões do SDK:
    3.1.302
    3.1.300
    3.1.101
    3.1.100
SDKs do MSBuild: /Library/Frameworks/Mono.framework/Versions/6.10.0/lib/mono/msbuild/Current/bin/Sdks

=== Runtime do .NET Core ===

Tempo de execução: /usr/local/share/dotnet/dotnet
Versões de Tempo de Execução:
    3.1.6
    3.1.4
    3.1.1
    3.1.0
    2.1.20
    2.1.18
    2.1.15
    2.1.14

=== Xamarin.Profiler ===

Versão: 1.6.13.11
Local: /Applications/Xamarin Profiler.app/Contents/MacOS/Xamarin Profiler

=== Updater ===

Versão: 11

=== Apple Developer Tools ===

Xcode 11.6 (16141)
Build 11E708

=== Xamarin.Mac ===

Xamarin.Mac not installed. Can't find /Library/Frameworks/Xamarin.Mac.framework/Versions/Current/Version.

=== Xamarin.iOS ===

Version: 13.18.3.2 (Visual Studio Community)
Hash: ce0cc74a3
Branch: d16-6-xcode11.6
Build date: 2020-07-16 18:15:27-0400

=== Xamarin.Android ===

Versão: 10.3.1.4 (Visual Studio Community)
Fazer commit: xamarin-android/d16-6/3a10de9
Android SDK: /Users/osdinformatica/Library/Developer/Xamarin/android-sdk-macosx
    Versões Android com suporte:
        4.4 (nível da API 19)
        8.0 (nível da API 26)
        8.1 (nível da API 27)

Versão das Ferramentas de SDK: 26.1.1
Versão das Ferramentas da Plataforma SDK: 29.0.4
Versão das Ferramentas de Build do SDK: 28.0.3

Informações do Build: 
Mono: 165f4b0
Java.Interop: xamarin/java.interop/d16-6@2cab35c
ProGuard: xamarin/proguard/master@905836d
SQLite: xamarin/sqlite/3.31.1@49232bc
Xamarin.Android Tools: xamarin/xamarin-android-tools/d16-6@bfb66f3

=== Microsoft OpenJDK for Mobile ===

Java SDK: /Users/osdinformatica/Library/Developer/Xamarin/jdk/microsoft_dist_openjdk_1.8.0.25
1.8.0-25
O código EPL do Android Designer está disponível aqui:
https://github.com/xamarin/AndroidDesigner.EPL

=== Android SDK Manager ===

Version: 16.6.0.50
Hash: 5901879
Branch: remotes/origin/d16-6
Build date: 2020-06-10 22:42:50 UTC

=== Android Device Manager ===

Version: 16.6.0.96
Hash: 6e8b80b
Branch: remotes/origin/d16-6
Build date: 2020-06-10 22:43:28 UTC

=== Xamarin Designer ===

Version: 16.6.0.329
Hash: d4f8bcd13
Branch: remotes/origin/d16-6
Build date: 2020-04-24 02:16:02 UTC

=== Build Information ===

Release ID: 806080002
Git revision: e999e2934e8c771fdf6494b80361dacef9427565
Build date: 2020-07-24 15:17:52-04
Build branch: release-8.6
Xamarin extensions: e999e2934e8c771fdf6494b80361dacef9427565

=== Operating System ===

Mac OS X 10.15.4
Darwin 19.4.0 Darwin Kernel Version 19.4.0
    Wed Mar  4 22:28:40 PST 2020
    root:xnu-6153.101.6~15/RELEASE_X86_64 x86_64

I found this question whith a similar error: "https://stackoverflow.com/questions/57495384/crash-on-calligraphy-library-by-chris-jenx-for-android-q".

The anwser for that was migrate to Calligraphy 3, can i do this in Xamarin.Android? How? Could be something else? What?


回答1:


I suggest you to take a look at this guide

I faced the same problem on a legacy Xamarin.Android project and I solved it removing Calligraphy. This is not a big problem since you must support and target API 28 (29 from November 2th). The problem was solved in Calligraphy 3+ but that version of library is currently not up to date in available Xamarin Nuget packages (they are still base on calligraphy 2).



来源:https://stackoverflow.com/questions/63584150/xamarin-android-crash-only-on-android-10

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!