Google Play Consoleを確認していたところ、Android5のユーザーでandroid.util.SuperNotCalledExceptionが発生していることに気づきました。 テストの為、Android5.1のエミュレータでアプリを実行するとアプリが起動しない不具合が確認できましたので、今回はその対応方法についてご紹介いたします。
前提条件 ・Windows10 Pro 64Bit ・Visual Studio 2015 Community Update3 ・Xamarin 4.7.9.45 (NuGet Xamarin.Forms 2.4.0.282)
on path: DexPathList[[zip file "/data/app/com.CompanyName.AppName-1/base.apk"],nativeLibraryDirectories=[/data/app/com.CompanyName.AppName-1/lib/x86, /vendor/lib, /system/lib]] --- End of inner exception stack trace --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <896ad1d315ca4ba7b117efb8dacaedcf>:0 at Java.Interop.JniEnvironment+InstanceMethods.CallNonvirtualVoidMethod (Java.Interop.JniObjectReference instance, Java.Interop.JniObjectReference type, Java.Interop.JniMethodInfo method, Java.Interop.JniArgumentValue* args) [0x00089] in <e499a5498b1b48379b88fe5ed629079f>:0 at Android.Runtime.JNIEnv.CallNonvirtualVoidMethod (System.IntPtr jobject, System.IntPtr jclass, System.IntPtr jmethod, Android.Runtime.JValue* parms) [0x00015] in <9663139ab15947a89e15a6bcd9621f68>:0 at Android.Runtime.JNIEnv.FinishCreateInstance (System.IntPtr instance, System.IntPtr jclass, System.IntPtr constructorId, Android.Runtime.JValue* constructorParameters) [0x00008] in <9663139ab15947a89e15a6bcd9621f68>:0 at Android.Support.V7.Widget.Toolbar..ctor (Android.Content.Context context) [0x000d0] in <c690702816034f28aca512af1f0abd66>:0 at Xamarin.Forms.Platform.Android.FormsAppCompatActivity.OnCreate (Android.OS.Bundle savedInstanceState) [0x00049] in C:\BuildAgent3\work\ca3766cfc22354a1\Xamarin.Forms.Platform.Android\AppCompat\FormsAppCompatActivity.cs:185 at AppName.Droid.MainActivity.OnCreate (Android.OS.Bundle bundle) [0x0007c] in AppName\AppName.Droid\MainActivity.cs:63 --- End of managed Java.Lang.NoClassDefFoundError stack trace --- java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/graphics/drawable/VectorDrawableCompat; at android.support.v7.widget.AppCompatDrawableManager$VdcInflateDelegate.createFromXmlInner(AppCompatDrawableManager.java:878) at android.support.v7.widget.AppCompatDrawableManager.loadDrawableFromDelegates(AppCompatDrawableManager.java:355) at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:196) at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:191) at android.support.v7.widget.TintTypedArray.getDrawable(TintTypedArray.java:60) at android.support.v7.widget.Toolbar.<init>(Toolbar.java:254) at android.support.v7.widget.Toolbar.<init>(Toolbar.java:196) at android.support.v7.widget.Toolbar.<init>(Toolbar.java:192) at com.CompanyName.AppName.MainActivity.n_onCreate(Native Method) at com.CompanyName.AppName.MainActivity.onCreate(MainActivity.java:38) at android.app.Activity.performCreate(Activity.java:5990) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) at android.app.ActivityThread.access$800(ActivityThread.java:151) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) 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:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.graphics.drawable.VectorDrawableCompat" on path: DexPathList[[zip file "/data/app/com.CompanyName.AppName-1/base.apk"],nativeLibraryDirectories=[/data/app/com.CompanyName.AppName-1/lib/x86, /vendor/lib, /system/lib]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) at java.lang.ClassLoader.loadClass(ClassLoader.java:511) at java.lang.ClassLoader.loadClass(ClassLoader.java:469) ... 23 more Suppressed: java.lang.ClassNotFoundException: android.support.graphics.drawable.VectorDrawableCompat at java.lang.Class.classForName(Native Method) at java.lang.BootClassLoader.findClass(ClassLoader.java:781) at java.lang.BootClassLoader.loadClass(ClassLoader.java:841) at java.lang.ClassLoader.loadClass(ClassLoader.java:504) ... 24 more Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available
Android.Views.InflateException: Binary XML file line #1: Error inflating class android.support.v7.widget.Toolbar
---> Java.Lang.Reflect.InvocationTargetException: Exception of type 'Java.Lang.Reflect.InvocationTargetException' was thrown. ---> Java.Lang.NoClassDefFoundError: Failed resolution of: Landroid/support/graphics/drawable/VectorDrawableCompat; ---> Java.Lang.ClassNotFoundException: Didn't find class "android.support.graphics.drawable.VectorDrawableCompat" on path: DexPathList[[zip file "/data/app/com.CompanyName.AppName-1/base.apk"],nativeLibraryDirectories=[/data/app/com.CompanyName.AppName-1/lib/x86, /vendor/lib, /system/lib]] --- End of inner exception stack trace --- --- End of inner exception stack trace --- --- End of inner exception stack trace --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <896ad1d315ca4ba7b117efb8dacaedcf>:0 at Java.Interop.JniEnvironment+InstanceMethods.CallObjectMethod (Java.Interop.JniObjectReference instance, Java.Interop.JniMethodInfo method, Java.Interop.JniArgumentValue* args) [0x00069] in <e499a5498b1b48379b88fe5ed629079f>:0 at Java.Interop.JniPeerMembers+JniInstanceMethods.InvokeVirtualObjectMethod (System.String encodedMember, Java.Interop.IJavaPeerable self, Java.Interop.JniArgumentValue* parameters) [0x0002a] in <e499a5498b1b48379b88fe5ed629079f>:0 at Android.Views.LayoutInflater.Inflate (System.Int32 resource, Android.Views.ViewGroup root) [0x00044] in <9663139ab15947a89e15a6bcd9621f68>:0 at Xamarin.Forms.Platform.Android.FormsAppCompatActivity.OnCreate (Android.OS.Bundle savedInstanceState) [0x00024] in C:\BuildAgent3\work\ca3766cfc22354a1\Xamarin.Forms.Platform.Android\AppCompat\FormsAppCompatActivity.cs:180 at AppName.Droid.MainActivity.OnCreate (Android.OS.Bundle bundle) [0x00066] in AppName\AppName.Droid\MainActivity.cs:59 --- End of managed Android.Views.InflateException stack trace --- android.view.InflateException: Binary XML file line #1: Error inflating class android.support.v7.widget.Toolbar at android.view.LayoutInflater.createView(LayoutInflater.java:633) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743) at android.view.LayoutInflater.inflate(LayoutInflater.java:482) at android.view.LayoutInflater.inflate(LayoutInflater.java:414) at android.view.LayoutInflater.inflate(LayoutInflater.java:365) at com.CompanyName.AppName.MainActivity.n_onCreate(Native Method) at com.CompanyName.AppName.MainActivity.onCreate(MainActivity.java:38) at android.app.Activity.performCreate(Activity.java:5990) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) at android.app.ActivityThread.access$800(ActivityThread.java:151) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) 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:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Constructor.newInstance(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:288) at android.view.LayoutInflater.createView(LayoutInflater.java:607) ... 19 more Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/graphics/drawable/VectorDrawableCompat; at android.support.v7.widget.AppCompatDrawableManager$VdcInflateDelegate.createFromXmlInner(AppCompatDrawableManager.java:878) at android.support.v7.widget.AppCompatDrawableManager.loadDrawableFromDelegates(AppCompatDrawableManager.java:355) at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:196) at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:191) at android.support.v7.widget.TintTypedArray.getDrawable(TintTypedArray.java:60) at android.support.v7.widget.Toolbar.<init>(Toolbar.java:254) at android.support.v7.widget.Toolbar.<init>(Toolbar.java:196) ... 22 more Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.graphics.drawable.VectorDrawableCompat" on path: DexPathList[[zip file "/data/app/com.CompanyName.AppName-1/base.apk"],nativeLibraryDirectories=[/data/app/com.CompanyName.AppName-1/lib/x86, /vendor/lib, /system/lib]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) at java.lang.ClassLoader.loadClass(ClassLoader.java:511) at java.lang.ClassLoader.loadClass(ClassLoader.java:469) ... 29 more Suppressed: java.lang.ClassNotFoundException: android.support.graphics.drawable.VectorDrawableCompat at java.lang.Class.classForName(Native Method) at java.lang.BootClassLoader.findClass(ClassLoader.java:781) at java.lang.BootClassLoader.loadClass(ClassLoader.java:841) at java.lang.ClassLoader.loadClass(ClassLoader.java:504) ... 30 more Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available