2013-08-06 26 views
54

SimpleXMLを使用して、AndroidアプリケーションをGradle 0.5。+とAndroid Studioでコンパイルしようとするとトラブルが発生しています。AndroidとGradleでSimpleXMLを使用する

これはエラーです:

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

build.gradleは、そのように構成されています

dependencies { 
    [...] 
    compile 'org.simpleframework:simple-xml:2.7.+' 
} 
repositories { 
    [...] 
    mavenCentral() 
} 

どのように私はこの問題を解決することができますか?

EDIT 問題は、私はLIBS /内部ジャーとして直接シンプルXMLをインストールした場合に存在していない - もちろんのMavenのソリューションはきれいになります。

答えて

125

stax-apiも除外する必要があります。

compile('org.simpleframework:simple-xml:2.7.+'){ 
    exclude module: 'stax' 
    exclude module: 'stax-api' 
    exclude module: 'xpp3' 
} 
+2

こんにちはJuggeliを、新しいGradleのバージョンでは、問題を解決していません単純なXMLからこれらの3つのモジュールを除くように思えます。 LintはそれがAndroid以外のライブラリであるという事実で泣いている。誰でもこの問題に直面していますか? – Alex

+0

一重引用符の前後に括弧を入れていない場合、最初の中括弧の前にコンマが必要です。それ以外の場合は「エラー:(70、0)メソッドが見つかりませんでした」com.squareup.retrofit2:converter-simplexml:2.1.0 )for arguments .... "というものです。私はparensの違いかどうかは分かりません...しかし、これに遭遇し、把握するまでに時間がかかりました。 – mawalker

4

私はあなたがいくつかの依存関係を除外する必要があると思います。

compile('org.simpleframework:simple-xml:2.7.+'){ 
    exclude module: 'stax' 
    exclude module: 'xpp3' 
} 
14

以前のソリューションが動作しない場合は、これを試してみてください:

configurations { 
    compile.exclude module: 'stax' 
    compile.exclude module: 'stax-api' 
    compile.exclude module: 'xpp3' 
} 
dependencies { 
    [...] 
    compile 'org.simpleframework:simple-xml:2.7.+' 
} 
repositories { 
    [...] 
    mavenCentral() 
} 
+0

何らかの理由で、コンパイルステートメントでexclude句を使用しても機能しませんでしたが、それらを構成にリストすることは私のためでした。 –

0

SimpleFrameworkを使用している間、私は同じエラーを取得しています。 は、実際に私はbuild.gradleにこれらの行を追加することで、それを解決:

compile('org.simpleframework:simple-xml:2.7.1') 
{ 
    exclude group: 'stax', module: 'stax-api' 
    exclude group: 'xpp3', module: 'xpp3'<br> 
} 
関連する問題