Search code examples
mavenintellij-ideaandroid-libraryrobospice

Robospice/Maven Intellij Android


I'm trying to get up and running with Robospice for Android.

In IntelliJ I've created a blank Android project. I've then gone to file->project structure->Libraries Clicked + from Maven. Then found the latest version of Robospice and imported it.

After completing this action my Android project now fails to build. I get the following error messages:

Error:Android Pre Dex: [xmlParserAPIs-2.6.2.jar] trouble processing "javax/xml/parsers/DocumentBuilder.class":
Error:Android Pre Dex: [xmlParserAPIs-2.6.2.jar] Ill-advised or mistaken usage of a core class (java.* or javax.*)
Error:Android Pre Dex: [xmlParserAPIs-2.6.2.jar] when not building a core library.
Error:Android Pre Dex: [xmlParserAPIs-2.6.2.jar] This is often due to inadvertently including a core library file
Error:Android Pre Dex: [xmlParserAPIs-2.6.2.jar] in your application's project, when using an IDE (such as
Error:Android Pre Dex: [xmlParserAPIs-2.6.2.jar] Eclipse). If you are sure you're not intentionally defining a
Error:Android Pre Dex: [xmlParserAPIs-2.6.2.jar] core class, then this is the most likely explanation of what's
Error:Android Pre Dex: [xmlParserAPIs-2.6.2.jar] going on.
Error:Android Pre Dex: [xmlParserAPIs-2.6.2.jar] However, you might actually be trying to define a class in a core
Error:Android Pre Dex: [xmlParserAPIs-2.6.2.jar] namespace, the source of which you may have taken, for example,
Error:Android Pre Dex: [xmlParserAPIs-2.6.2.jar] from a non-Android virtual machine project. This will most
Error:Android Pre Dex: [xmlParserAPIs-2.6.2.jar] assuredly not work. At a minimum, it jeopardizes the
Error:Android Pre Dex: [xmlParserAPIs-2.6.2.jar] compatibility of your app with future versions of the platform.
Error:Android Pre Dex: [xmlParserAPIs-2.6.2.jar] It is also often of questionable legality.
Error:Android Pre Dex: [xmlParserAPIs-2.6.2.jar] If you really intend to build a core library -- which is only
Error:Android Pre Dex: [xmlParserAPIs-2.6.2.jar] appropriate as part of creating a full virtual machine
Error:Android Pre Dex: [xmlParserAPIs-2.6.2.jar] distribution, as opposed to compiling an application -- then use
Error:Android Pre Dex: [xmlParserAPIs-2.6.2.jar] the "--core-library" option to suppress this error message.
Error:Android Pre Dex: [xmlParserAPIs-2.6.2.jar] If you go ahead and use "--core-library" but are in fact
Error:Android Pre Dex: [xmlParserAPIs-2.6.2.jar] building an application, then be forewarned that your application
Error:Android Pre Dex: [xmlParserAPIs-2.6.2.jar] will still fail to build or run, at some point. Please be
Error:Android Pre Dex: [xmlParserAPIs-2.6.2.jar] prepared for angry customers who find, for example, that your
Error:Android Pre Dex: [xmlParserAPIs-2.6.2.jar] application ceases to function once they upgrade their operating
Error:Android Pre Dex: [xmlParserAPIs-2.6.2.jar] system. You will be to blame for this problem.
Error:Android Pre Dex: [xmlParserAPIs-2.6.2.jar] If you are legitimately using some code that happens to be in a
Error:Android Pre Dex: [xmlParserAPIs-2.6.2.jar] core package, then the easiest safe alternative you have is to
Error:Android Pre Dex: [xmlParserAPIs-2.6.2.jar] repackage that code. That is, move the classes in question into
Error:Android Pre Dex: [xmlParserAPIs-2.6.2.jar] your own package namespace. This means that they will never be in
Error:Android Pre Dex: [xmlParserAPIs-2.6.2.jar] conflict with core system classes. JarJar is a tool that may help
Error:Android Pre Dex: [xmlParserAPIs-2.6.2.jar] you in this endeavor. If you find that you cannot do this, then
Error:Android Pre Dex: [xmlParserAPIs-2.6.2.jar] that is an indication that the path you are on will ultimately
Error:Android Pre Dex: [xmlParserAPIs-2.6.2.jar] lead to pain, suffering, grief, and lamentation.
Error:Android Pre Dex: [xmlParserAPIs-2.6.2.jar] 1 error; aborting

I'm not sure where I'm going wrong?!


Solution

  • Read about the setup of RS in the wiki pages, you will see that some extensions need some exclusions on Android. This is not related to RoboSpice per say but depends on the libraries themselves (for instance XMLParser depends on stax and xp3 that must be excluded on Android).