xamarin / AndroidSupportComponents

Xamarin bindings for Android Support libraries - For AndroidX see https://github.com/xamarin/AndroidX
MIT License
146 stars 56 forks source link

v28.0.0.1 : Xamarin.Android Designer, Java ClassNotFound Exception with Support Widgets #163

Open HakanCelikMK1 opened 5 years ago

HakanCelikMK1 commented 5 years ago

Xamarin.Android Version:

Xamarin 4.12.3.81 (d15-9@780082716) Xamarin Designer 4.16.13 (45a16efd4) Xamarin.Android SDK 9.1.7.0 (HEAD/ba9da7a76)

Operating System & Version (eg: Mac OSX 10.11):

Microsoft Windows 10 Enterprise x64 (10.0.17134 Build 17134)

Visual Studio Version

Microsoft Visual Studio Community 2017 (Version 15.9.10) VisualStudio.15.Release/15.9.10+28307.557

Support Libraries Version (eg: 23.3.0):

28.0.0.1

Describe your Issue:

I've started to get java.lang.ClassNotFoundExceptions in the Xamarin.Android designer for the widgets in Android.Support.V7.Widget (for example SwitchCompat) after I upgraded to v28.0.0.1.

When I reverted back to v27.0.2.1 this problem disappeared.

Steps to Reproduce (with link to sample solution if possible):

Steps to Resolve:

Also, I've checked the issue #140. The solution mentioned there also seems to solve my issue too. I've changed TargetFrameworkVersion from v9.0 to v8.1 and designer seems to work OK so far. If it is an option for you too, this could be your solution for the time being.

Include any relevant Exception Stack traces, build logs, adb logs:

C:\Users\xxxxx\AppData\Local\Xamarin\Logs\15.0\AndroidDesigner-2019-03-28__12-28-42.6368.log

[2019-03-28 12:29:04.5] Renderer >> 4 [monodroid] SWITCHING CONTEXT [2019-03-28 12:29:04.5] Renderer >> INFO: Trying to load class android.support.v7.widget.SwitchCompat [2019-03-28 12:29:04.5] Renderer >> [2019-03-28 12:29:04.5] Renderer >> TODO: getParser2 [2019-03-28 12:29:04.5] Renderer >> TODO: getParser2 [2019-03-28 12:29:04.5] Renderer >> ERROR: An exception occured while loading control android.support.v7.widget.SwitchCompat [2019-03-28 12:29:04.5] Renderer >> ERROR: java.lang.reflect.InvocationTargetException [2019-03-28 12:29:04.5] Renderer >> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) [2019-03-28 12:29:04.5] Renderer >> at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) [2019-03-28 12:29:04.5] Renderer >> at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) [2019-03-28 12:29:04.5] Renderer >> at java.lang.reflect.Constructor.newInstance(Constructor.java:423) [2019-03-28 12:29:04.5] Renderer >> at mono.android.SessionProjectCallback.instantiateClass(SessionProjectCallback.java:404) [2019-03-28 12:29:04.5] Renderer >> at mono.android.SessionProjectCallback.loadView(SessionProjectCallback.java:204) [2019-03-28 12:29:04.5] Renderer >> at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:337) [2019-03-28 12:29:04.5] Renderer >> at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:348) [2019-03-28 12:29:04.5] Renderer >> at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:248) [2019-03-28 12:29:04.5] Renderer >> at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730) [2019-03-28 12:29:04.5] Renderer >> at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:863) [2019-03-28 12:29:04.5] Renderer >> at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72) [2019-03-28 12:29:04.5] Renderer >> at android.view.LayoutInflater.rInflate(LayoutInflater.java:837) [2019-03-28 12:29:04.5] Renderer >> at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824) [2019-03-28 12:29:04.5] Renderer >> at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:866) [2019-03-28 12:29:04.5] Renderer >> at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72) [2019-03-28 12:29:04.5] Renderer >> at android.view.LayoutInflater.rInflate(LayoutInflater.java:837) [2019-03-28 12:29:04.5] Renderer >> at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824) [2019-03-28 12:29:04.5] Renderer >> at android.view.LayoutInflater.inflate(LayoutInflater.java:515) [2019-03-28 12:29:04.5] Renderer >> at android.view.LayoutInflater.inflate(LayoutInflater.java:394) [2019-03-28 12:29:04.5] Renderer >> at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:325) [2019-03-28 12:29:04.5] Renderer >> at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:384) [2019-03-28 12:29:04.5] Renderer >> at com.android.tools.idea.layoutlib.LayoutLibrary.createSession(LayoutLibrary.java:270) [2019-03-28 12:29:04.5] Renderer >> at mono.android.DesignerSession.load(DesignerSession.java:307) [2019-03-28 12:29:04.5] Renderer >> at mono.android.DesignerSession.processMessage(DesignerSession.java:675) [2019-03-28 12:29:04.5] Renderer >> at mono.android.MessageListener.executeMessage(MessageListener.java:88) [2019-03-28 12:29:04.5] Renderer >> at mono.android.MessageListener$Runner.run(MessageListener.java:44) [2019-03-28 12:29:04.5] Renderer >> at java.lang.Thread.run(Thread.java:748) [2019-03-28 12:29:04.5] Renderer >> Caused by: java.lang.NoClassDefFoundError: android/view/View$OnUnhandledKeyEventListener [2019-03-28 12:29:04.5] Renderer >> at android.support.v7.widget.SwitchCompat.setChecked(SwitchCompat.java:1066) [2019-03-28 12:29:04.5] Renderer >> at android.widget.CompoundButton.<init>(CompoundButton.java:117) [2019-03-28 12:29:04.5] Renderer >> at android.widget.CompoundButton.<init>(CompoundButton.java:90) [2019-03-28 12:29:04.5] Renderer >> at android.support.v7.widget.SwitchCompat.<init>(SwitchCompat.java:218) [2019-03-28 12:29:04.5] Renderer >> at android.support.v7.widget.SwitchCompat.<init>(SwitchCompat.java:204) [2019-03-28 12:29:04.5] Renderer >> ... 28 more [2019-03-28 12:29:04.5] Renderer >> Caused by: java.lang.ClassNotFoundException [2019-03-28 12:29:04.5] Renderer >> at mono.android.LibraryClassLoader.loadAndConvertClass(LibraryClassLoader.java:89) [2019-03-28 12:29:04.5] Renderer >> at mono.android.LibraryClassLoader.findClass(LibraryClassLoader.java:57) [2019-03-28 12:29:04.5] Renderer >> at java.lang.ClassLoader.loadClass(ClassLoader.java:424) [2019-03-28 12:29:04.5] Renderer >> at java.lang.ClassLoader.loadClass(ClassLoader.java:357) [2019-03-28 12:29:04.5] Renderer >> ... 33 more

moljac commented 5 years ago

I have asked Designer team and according to them it was fixed this in 8.0/d16.0.

I'm experiencing different behavior - namely design surface is blank (nothing is rendered) and they advised me to ask Xamarin.Android core team. Waiting for the answer.

HakanCelikMK1 commented 5 years ago

Please let me know if there is anything I can do to help with this. Would providing other Xamarin logs be helpful ? Or I can test with different settings etc. and report the results.