nickk
07/30/2019, 3:04 PMjava.lang.ClassNotFoundException: com.louiscad.splittiessample.main.MainUi
at org.jetbrains.android.uipreview.ModuleClassLoader.load(ModuleClassLoader.java:201)
at com.android.tools.idea.rendering.RenderClassLoader.findClass(RenderClassLoader.java:61)
at org.jetbrains.android.uipreview.ModuleClassLoader.findClass(ModuleClassLoader.java:135)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.jetbrains.android.uipreview.ModuleClassLoader.loadClass(ModuleClassLoader.java:235)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at splitties.views.dsl.idepreview.UiPreView.<init>(UiPreView.kt:60)
at splitties.views.dsl.idepreview.UiPreView.<init>(UiPreView.kt:43)
at splitties.views.dsl.idepreview.UiPreView.<init>(UiPreView.kt)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:403)
at org.jetbrains.android.uipreview.ViewLoader.loadClass(ViewLoader.java:186)
at org.jetbrains.android.uipreview.ViewLoader.loadView(ViewLoader.java:144)
at com.android.tools.idea.rendering.LayoutlibCallbackImpl.loadView(LayoutlibCallbackImpl.java:309)
at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:418)
at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:429)
at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:333)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)
at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
at android.view.LayoutInflater.inflate(LayoutInflater.java:394)
at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:323)
at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:394)
at com.android.tools.idea.layoutlib.LayoutLibrary.createSession(LayoutLibrary.java:200)
at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:572)
at com.android.tools.idea.rendering.RenderTask.lambda$inflate$5(RenderTask.java:698)
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1590)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
If I clean the project, I get a slightly different error:
Missing classes: The following classes could not be found:
splitties.views.dsl.idepreview.UiPreView
louiscad
07/30/2019, 11:01 PMnickk
07/31/2019, 8:19 AMnickk
07/31/2019, 8:20 AMlouiscad
07/31/2019, 9:53 AMnickk
07/31/2019, 9:54 AMlouiscad
07/31/2019, 10:20 AMnickk
07/31/2019, 10:20 AMnickk
07/31/2019, 10:34 AMException Details java.lang.ClassNotFoundException: com.louiscad.splittiessample.main.MainUi at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at java.lang.Class.forName0(Class.java:-2) at java.lang.Class.forName(Class.java:264) at splitties.views.dsl.idepreview.UiPreView.<init> ... (UiPreView.kt:60) at splitties.views.dsl.idepreview.UiPreView.<init>(UiPreView.kt:43) at splitties.views.dsl.idepreview.UiPreView.<init>(UiPreView.kt:-1) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730) at android.view.LayoutInflater.inflate(LayoutInflater.java:492) at android.view.LayoutInflater.inflate(LayoutInflater.java:394)
nickk
07/31/2019, 10:38 AM/Users/nk/Projects/android/Splitties/modules/views-dsl-material/build/intermediates/packaged_res/debug/values/values.xml:27:5-59:13: AAPT: error: resource style/Widget.MaterialComponents.BottomAppBar (aka splitties.views.dsl.material.test:style/Widget.MaterialComponents.BottomAppBar) not found.
louiscad
07/31/2019, 2:03 PMapplicationId
and a package move I did some time ago. The new package where the code is located is com.example.splitties.
but the applicationId
is still com.louiscad.splittiessample
. Since UIPreview
uses context.packageName
, applicationId
is returned, and the class doesn't exist. Workaround is to use splitties_class_fully_qualified_name
in xml instead of splitties_class_package_name_relative
. I opened an issue to improve it: https://github.com/LouisCAD/Splitties/issues/202nickk
07/31/2019, 2:05 PMnickk
07/31/2019, 2:07 PMlouiscad
07/31/2019, 2:12 PMUIPreview
a lot, but I can tell you it works, and it's better if the sample isn't broken in subtle ways. Since Android Studio 3.4, there's the resource manager which makes UIPreview
quite useful when coming to a new project as you can glance the existing layouts.nickk
07/31/2019, 2:15 PMnickk
07/31/2019, 2:15 PMlouiscad
07/31/2019, 5:20 PM