问题
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