I'm trying to put together an Android application which uses a library that uses IKVM, and so I need to include mscorlib.jar. The problem is this. When I add the mscorlib.jar as a module dependency (using Intellij) I get the Unexpected Top-Level Exception below, which from the post here Android Studio - UNEXPECTED TOP-LEVEL EXCEPTION: means that the library is included multiple times.
Information:0 warnings
Error:Android Pre Dex: [mscorlib.jar] UNEXPECTED TOP-LEVEL EXCEPTION:
Error:Android Pre Dex: [mscorlib.jar] com.android.dex.util.ExceptionWithContext: name already added: string{"XmlNamespace"}
Error:Android Pre Dex: [mscorlib.jar] at com.android.dex.util.ExceptionWithContext.withContext(ExceptionWithContext.java:45)
Error:Android Pre Dex: [mscorlib.jar] at com.android.dx.dex.cf.CfTranslator.translate(CfTranslator.java:97)
Error:Android Pre Dex: [mscorlib.jar] at com.android.dx.command.dexer.Main.processClass(Main.java:682)
Error:Android Pre Dex: [mscorlib.jar] at com.android.dx.command.dexer.Main.processFileBytes(Main.java:634)
Error:Android Pre Dex: [mscorlib.jar] at com.android.dx.command.dexer.Main.access$600(Main.java:78)
Error:Android Pre Dex: [mscorlib.jar] at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:572)
Error:Android Pre Dex: [mscorlib.jar] at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284)
Error:Android Pre Dex: [mscorlib.jar] at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166)
Error:Android Pre Dex: [mscorlib.jar] at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
Error:Android Pre Dex: [mscorlib.jar] at com.android.dx.command.dexer.Main.processOne(Main.java:596)
Error:Android Pre Dex: [mscorlib.jar] at com.android.dx.command.dexer.Main.processAllFiles(Main.java:498)
Error:Android Pre Dex: [mscorlib.jar] at com.android.dx.command.dexer.Main.runMonoDex(Main.java:264)
Error:Android Pre Dex: [mscorlib.jar] at com.android.dx.command.dexer.Main.run(Main.java:230)
Error:Android Pre Dex: [mscorlib.jar] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
Error:Android Pre Dex: [mscorlib.jar] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
Error:Android Pre Dex: [mscorlib.jar] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
Error:Android Pre Dex: [mscorlib.jar] at java.lang.reflect.Method.invoke(Method.java:606)
Error:Android Pre Dex: [mscorlib.jar] at org.jetbrains.android.compiler.tools.AndroidDxRunner.runDex(AndroidDxRunner.java:161)
Error:Android Pre Dex: [mscorlib.jar] at org.jetbrains.android.compiler.tools.AndroidDxRunner.main(AndroidDxRunner.java:294)
Error:Android Pre Dex: [mscorlib.jar] at com.intellij.rt.execution.CommandLineWrapper.main(CommandLineWrapper.java:121)
Error:Android Pre Dex: [mscorlib.jar] Caused by: java.lang.IllegalArgumentException: name already added: string{"XmlNamespace"}
Error:Android Pre Dex: [mscorlib.jar] at com.android.dx.rop.annotation.Annotation.add(Annotation.java:208)
Error:Android Pre Dex: [mscorlib.jar] at com.android.dx.dex.cf.AttributeTranslator.translateAnnotationDefaults(AttributeTranslator.java:413)
Error:Android Pre Dex: [mscorlib.jar] at com.android.dx.dex.cf.AttributeTranslator.getClassAnnotations(AttributeTranslator.java:135)
Error:Android Pre Dex: [mscorlib.jar] at com.android.dx.dex.cf.CfTranslator.translate0(CfTranslator.java:129)
Error:Android Pre Dex: [mscorlib.jar] at com.android.dx.dex.cf.CfTranslator.translate(CfTranslator.java:94)
Error:Android Pre Dex: [mscorlib.jar] ... 22 more
Error:Android Pre Dex: [mscorlib.jar] ...while processing cli/System/Runtime/Remoting/Metadata/SoapTypeAttribute$Annotation.class
Error:Android Pre Dex: [mscorlib.jar] 1 error; aborting
If I remove it, the project compiles, but then I get a verify error at runtime when the part of the app that actually calls the library that uses IKVM (below). It's saying it can't find an exception handler that is defined in mscorlib.jar.
07-09 19:02:11.087 1979-1979/net.windward.SimpleAndroidApp W/dalvikvm﹕ VFY: unable to resolve exception class 1139 (Lcli/System/Exception;)
07-09 19:02:11.097 1979-1979/net.windward.SimpleAndroidApp W/dalvikvm﹕ VFY: unable to find exception handler at addr 0x1f0
07-09 19:02:11.097 1979-1979/net.windward.SimpleAndroidApp W/dalvikvm﹕ VFY: rejected Lnet/windward/xmlreport/KZ;.factory (Ljava/io/InputStream;Lnet/windward/tags/BaseTag;ILjava/io/InputStream;I)Lnet/windward/document/element/ElementPict;
07-09 19:02:11.097 1979-1979/net.windward.SimpleAndroidApp W/dalvikvm﹕ VFY: rejecting opcode 0x0d at 0x01f0
07-09 19:02:11.097 1979-1979/net.windward.SimpleAndroidApp W/dalvikvm﹕ VFY: rejected Lnet/windward/xmlreport/KZ;.factory (Ljava/io/InputStream;Lnet/windward/tags/BaseTag;ILjava/io/InputStream;I)Lnet/windward/document/element/ElementPict;
07-09 19:02:11.097 1979-1979/net.windward.SimpleAndroidApp W/dalvikvm﹕ Verifier rejected class Lnet/windward/xmlreport/KZ;
07-09 19:02:11.097 1979-1979/net.windward.SimpleAndroidApp D/AndroidRuntime﹕ Shutting down VM
07-09 19:02:11.097 1979-1979/net.windward.SimpleAndroidApp W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0xb2ccbb20)
07-09 19:02:11.117 1979-1979/net.windward.SimpleAndroidApp E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: net.windward.SimpleAndroidApp, PID: 1979
java.lang.IllegalStateException: Could not execute method of the activity
at android.view.View$1.onClick(View.java:3823)
at android.view.View.performClick(View.java:4438)
at android.view.View$PerformClick.run(View.java:18422)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5017)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at android.view.View$1.onClick(View.java:3818)
at android.view.View.performClick(View.java:4438)
at android.view.View$PerformClick.run(View.java:18422)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5017)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.VerifyError: net/windward/xmlreport/KZ
at net.windward.xmlreport.ProcessReport.processData(Unknown Source)
at net.windward.SimpleAndroidApp.MyActivity.sendMessage(MyActivity.java:62)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at android.view.View$1.onClick(View.java:3818)
at android.view.View.performClick(View.java:4438)
at android.view.View$PerformClick.run(View.java:18422)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5017)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
at dalvik.system.NativeStart.main(Native Method)
So the first error seems like mscorlib.jar is included twice, but the second one that it's not included at all. I would lean towards the first error not being due to including twice, since I can't for the life of me find it listed as a dependency or library anywhere except the module dependency where it belongs.
Has anybody run into this before?