lucasr/probe

Final View classes throw error

Closed this issue · 3 comments

E/AndroidRuntime(20649): java.lang.IncompatibleClassChangeError: superclass is final
E/AndroidRuntime(20649): at dalvik.system.DexFile.defineClassNative(Native Method)
E/AndroidRuntime(20649): at dalvik.system.DexFile.defineClass(DexFile.java:222)
E/AndroidRuntime(20649): at dalvik.system.DexFile.loadClassBinaryName(DexFile.java:215)
E/AndroidRuntime(20649): at dalvik.system.DexPathList.findClass(DexPathList.java:322)
E/AndroidRuntime(20649): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:54)
E/AndroidRuntime(20649): at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
E/AndroidRuntime(20649): at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
E/AndroidRuntime(20649): at org.lucasr.probe.ViewProxyBuilder.generateProxyClass(ViewProxyBuilder.java:428)
E/AndroidRuntime(20649): at org.lucasr.probe.ViewProxyBuilder.build(ViewProxyBuilder.java:559)
E/AndroidRuntime(20649): at org.lucasr.probe.ProbeViewFactory.createProxyView(ProbeViewFactory.java:51)
E/AndroidRuntime(20649): at org.lucasr.probe.ProbeViewFactory.onCreateView(ProbeViewFactory.java:72)
E/AndroidRuntime(20649): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:684)
E/AndroidRuntime(20649): at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
E/AndroidRuntime(20649): at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
E/AndroidRuntime(20649): at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
E/AndroidRuntime(20649): at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
E/AndroidRuntime(20649): at com.android.internal.policy.impl.PhoneWindow.generateLayout(PhoneWindow.java:3022)
E/AndroidRuntime(20649): at com.android.internal.policy.impl.PhoneWindow.installDecor(PhoneWindow.java:3085)
E/AndroidRuntime(20649): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:286)

And that class is ViewStub.

Yeah, probe creates dynamic subclasses at runtime. This won't work on final views. I assume this is taken care of in #10? Shall I close this ticket?

Added an extra safe-guard against final View classes. Closing.