SimpleXML在Thread.getContextClassLoader()返回的类加载器可能失败之后抛出ClassNotFoundException
在一些设备上,我有这个错误:
W/ActivityThread: ClassLoader.loadClass: The class loader returned by Thread.getContextClassLoader() may fail for processes that host multiple applications. You should explicitly specify a context class loader. For example: Thread.setContextClassLoader(getClass().getClassLoader()); D/dalvikvm: GC_CONCURRENT freed 1499K, 11% free 14469K/16119K, paused 2ms+3ms, total 41ms D/dalvikvm: WAIT_FOR_CONCURRENT_GC blocked 25ms I/SurfaceTextureClient: [0x517af630] frames:42, duration:1.290000, fps:32.550117 E/rkqpKRQuestApplicationListener: RxJavaHooks onError: java.lang.ClassNotFoundException: red.kometa.quest.common.entities.Paragraph$Part$Action$Way$NormalBehaviour at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61) ~[na:0.0] at java.lang.ClassLoader.loadClass(ClassLoader.java:501) ~[na:0.0] at java.lang.ClassLoader.loadClass(ClassLoader.java:461) ~[na:0.0] at org.simpleframework.xml.strategy.Loader.load(Loader.java:50) ~[na:0.0] at org.simpleframework.xml.strategy.TreeStrategy.readValue(TreeStrategy.java:163) ~[na:0.0] at org.simpleframework.xml.strategy.TreeStrategy.read(TreeStrategy.java:102) ~[na:0.0] at org.simpleframework.xml.convert.RegistryStrategy.read(RegistryStrategy.java:103) ~[na:0.0] at org.simpleframework.xml.core.Source.getOverride(Source.java:360) ~[na:0.0] at org.simpleframework.xml.core.Factory.getConversion(Factory.java:207) ~[na:0.0] at org.simpleframework.xml.core.Factory.getOverride(Factory.java:139) ~[na:0.0] at org.simpleframework.xml.core.ObjectFactory.getInstance(ObjectFactory.java:63) ~[na:0.0] at org.simpleframework.xml.core.Composite.read(Composite.java:139) ~[na:0.0] at org.simpleframework.xml.core.Composite.readVariable(Composite.java:623) ~[na:0.0] at org.simpleframework.xml.core.Composite.readInstance(Composite.java:573) ~[na:0.0] at org.simpleframework.xml.core.Composite.readUnion(Composite.java:549) ~[na:0.0] at org.simpleframework.xml.core.Composite.readElement(Composite.java:532) ~[na:0.0] at org.simpleframework.xml.core.Composite.readElements(Composite.java:445) ~[na:0.0] at org.simpleframework.xml.core.Composite.access$400(Composite.java:59) ~[na:0.0] at org.simpleframework.xml.core.Composite$Injector.read(Composite.java:1433) ~[na:0.0] at org.simpleframework.xml.core.Composite.read(Composite.java:201) ~[na:0.0] at org.simpleframework.xml.core.Composite.read(Composite.java:148) ~[na:0.0] at org.simpleframework.xml.core.Traverser.read(Traverser.java:92) ~[na:0.0] at org.simpleframework.xml.core.CompositeInlineList.read(CompositeInlineList.java:190) ~[na:0.0] at org.simpleframework.xml.core.CompositeInlineList.read(CompositeInlineList.java:167) ~[na:0.0] at org.simpleframework.xml.core.CompositeInlineList.read(CompositeInlineList.java:124) ~[na:0.0] at org.simpleframework.xml.core.CompositeListUnion.readElement(CompositeListUnion.java:129) ~[na:0.0] at org.simpleframework.xml.core.CompositeListUnion.read(CompositeListUnion.java:107) ~[na:0.0] at org.simpleframework.xml.core.Composite.readVariable(Composite.java:623) ~[na:0.0] at org.simpleframework.xml.core.Composite.readInstance(Composite.java:573) ~[na:0.0] at org.simpleframework.xml.core.Composite.readUnion(Composite.java:549) ~[na:0.0] at org.simpleframework.xml.core.Composite.readElement(Composite.java:532) ~[na:0.0] at org.simpleframework.xml.core.Composite.readElements(Composite.java:445) ~[na:0.0] at org.simpleframework.xml.core.Composite.access$400(Composite.java:59) ~[na:0.0] at org.simpleframework.xml.core.Composite$Injector.read(Composite.java:1433) ~[na:0.0] at org.simpleframework.xml.core.Composite.read(Composite.java:201) ~[na:0.0] at org.simpleframework.xml.core.Composite.read(Composite.java:148) ~[na:0.0] at org.simpleframework.xml.core.Traverser.read(Traverser.java:92) ~[na:0.0] at org.simpleframework.xml.core.CompositeInlineList.read(CompositeInlineList.java:190) ~[na:0.0] at org.simpleframework.xml.core.CompositeInlineList.read(CompositeInlineList.java:167) ~[na:0.0] at org.simpleframework.xml.core.CompositeInlineList.read(CompositeInlineList.java:144) ~[na:0.0] at org.simpleframework.xml.core.CompositeListUnion.readElement(CompositeListUnion.java:189) ~[na:0.0] at org.simpleframework.xml.core.CompositeListUnion.read(CompositeListUnion.java:162) ~[na:0.0] at org.simpleframework.xml.core.Variable$Adapter.read(Variable.java:482) ~[na:0.0] at org.simpleframework.xml.core.Composite.readVariable(Composite.java:613) ~[na:0.0] at org.simpleframework.xml.core.Composite.readInstance(Composite.java:573) ~[na:0.0]
当SimpleXML试图反序列化Quest
对象时,会发生这种情况:
logger.debug("paragraph class: ${Paragraph::class.java}") logger.debug("NormalBehaviour class: ${Paragraph.Part.Action.Way.NormalBehaviour::class.java}") val demoObj = Paragraph.Part.Action.Way.NormalBehaviour() logger.debug("demoObj: $demoObj") xmlSerializer.read(Quest::class.java, questFile.reader())
我可以在代码中使用这个类(打印它,创建它的一个实例),但是SimpleXML找不到它。
这是一种错误吗?
- AAR / JAR不会使用Android Studio 3.0 Canary 7生成
- Rxjava与kotlin
- 什么是这个java代码相当于kotlin
- 无法解析:com.google.firebase:firebase-auth:11.0.2
- Android Studio在构建Kotlin项目时报告“无法识别启动活动:找不到默认活动”
- 运算符==不能应用于Kotlin中的“Long”和“Int”
- 在ConstraintLayout中使用组来侦听多个视图上的点击事件
- Android Kotlin:错误未解决的参考:DaggerAppComponent
- 当前选择的Java调试器不支持“Kotlin Line Breakpoints”类型的断点