2016-07-17 7 views
1

Eclipseでgradleプロジェクトを作成するためにAndroidでApache POIを使用しようとしていますが、gradleタスクを実行するときにandroidInstallエラーが発生しますデクスのステップ。私は警告を無視して、これを追加するために必要なことを読んで私はcompileSdkVersionjavafxとapacheを使ってdexでプロジェクトを実行中にエラーが発生するPOI

lintOptions { 
    abortOnError false 
} 

に別のエラーを取得し、ここで私のです

Uncaught translation error: java.lang.IllegalArgumentException: already added: Ljavax/xml/stream/EventFilter; 
Uncaught translation error: java.lang.IllegalArgumentException: already added: Ljavax/xml/stream/FactoryConfigurationError; 
Uncaught translation error: java.lang.IllegalArgumentException: already added: Ljavax/xml/stream/FactoryFinder; 
Uncaught translation error: java.lang.IllegalArgumentException: already added: Ljavax/xml/stream/FactoryFinder$1; 
Uncaught translation error: java.lang.IllegalArgumentException: already added: Ljavax/xml/stream/FactoryFinder$ClassLoaderFinder; 
Uncaught translation error: java.lang.IllegalArgumentException: already added: Ljavax/xml/stream/FactoryFinder$ClassLoaderFinderConcrete; 
Uncaught translation error: java.lang.IllegalArgumentException: already added: Ljavax/xml/stream/Location; 
Uncaught translation error: java.lang.IllegalArgumentException: already added: Ljavax/xml/stream/StreamFilter; 
Uncaught translation error: java.lang.IllegalArgumentException: already added: Ljavax/xml/stream/XMLEventFactory; 

UNEXPECTED TOP-LEVEL EXCEPTION: 
java.lang.RuntimeException: Translation has been interrupted 
at com.android.dx.command.dexer.Main.processAllFiles(Main.java:613) 
at com.android.dx.command.dexer.Main.runMultiDex(Main.java:366) 
at com.android.dx.command.dexer.Main.run(Main.java:275) 
at com.android.dx.command.dexer.Main.main(Main.java:245) 
at com.android.dx.command.Main.main(Main.java:106) 
Caused by: java.lang.InterruptedException: Too many errors 
at com.android.dx.command.dexer.Main.processAllFiles(Main.java:605) 
... 4 more 
16:41:25.082 [ERROR] [org.gradle.api.internal.project.ant.AntLoggingAdapter] [ant:java] Java Result: 2 
16:41:25.083 [DEBUG] [org.gradle.api.internal.project.ant.AntLoggingAdapter] Setting project property: dexResult -> 2 
16:41:25.084 [DEBUG] [org.gradle.api.Project] Dex result value = 2 
16:41:25.093 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] Finished executing task ':dex' 
16:41:25.094 [LIFECYCLE] [class org.gradle.TaskExecutionLogger] :dex FAILED 
16:41:25.095 [INFO] [org.gradle.execution.taskgraph.AbstractTaskPlanExecutor] :dex (Thread[Daemon worker Thread 2,5,main]) completed. Took 2 mins 19.455 secs. 
16:41:25.095 [DEBUG] [org.gradle.execution.taskgraph.AbstractTaskPlanExecutor] Task worker [Thread[Daemon worker Thread 2,5,main]] finished, busy: 21 mins 29.722 secs, idle: 0.053 secs 
16:41:25.103 [ERROR] [org.gradle.BuildExceptionReporter] 
16:41:25.108 [ERROR] [org.gradle.BuildExceptionReporter] FAILURE: Build failed with an exception. 
16:41:25.109 [ERROR] [org.gradle.BuildExceptionReporter] 
16:41:25.109 [ERROR] [org.gradle.BuildExceptionReporter] * What went wrong: 
16:41:25.109 [ERROR] [org.gradle.BuildExceptionReporter] Execution failed for task ':dex'. 
16:41:25.110 [ERROR] [org.gradle.BuildExceptionReporter] > warning: Ignoring InnerClasses attribute for an anonymous inner class 
16:41:25.110 [ERROR] [org.gradle.BuildExceptionReporter] (org.apache.xmlbeans.XmlBeans$1) that doesn't come with an 
16:41:25.111 [ERROR] [org.gradle.BuildExceptionReporter] associated EnclosingMethod attribute. This class was probably produced by a 
16:41:25.111 [ERROR] [org.gradle.BuildExceptionReporter] compiler that did not target the modern .class file format. The recommended 
16:41:25.112 [ERROR] [org.gradle.BuildExceptionReporter] solution is to recompile the class from source, using an up-to-date compiler 
16:41:25.112 [ERROR] [org.gradle.BuildExceptionReporter] and without specifying any "-target" type options. The consequence of ignoring 
16:41:25.112 [ERROR] [org.gradle.BuildExceptionReporter] this warning is that reflective operations on this class will incorrectly 
16:41:25.115 [ERROR] [org.gradle.BuildExceptionReporter] indicate that it is *not* an inner class. 
16:41:25.115 [ERROR] [org.gradle.BuildExceptionReporter] warning: Ignoring InnerClasses attribute for an anonymous inner class 
16:41:25.116 [ERROR] [org.gradle.BuildExceptionReporter] (org.apache.xmlbeans.XmlSimpleList$1) that doesn't come with an 
16:41:25.140 [ERROR] [org.gradle.BuildExceptionReporter] associated EnclosingMethod attribute. This class was probably produced by a 
16:41:25.140 [ERROR] [org.gradle.BuildExceptionReporter] compiler that did not target the modern .class file format. The recommended 
16:41:25.140 [ERROR] [org.gradle.BuildExceptionReporter] solution is to recompile the class from source, using an up-to-date compiler 
16:41:25.141 [ERROR] [org.gradle.BuildExceptionReporter] and without specifying any "-target" type options. The consequence of ignoring 
16:41:25.141 [ERROR] [org.gradle.BuildExceptionReporter] this warning is that reflective operations on this class will incorrectly 
16:41:25.141 [ERROR] [org.gradle.BuildExceptionReporter] indicate that it is *not* an inner class. 
16:41:25.141 [ERROR] [org.gradle.BuildExceptionReporter] warning: Ignoring InnerClasses attribute for an anonymous inner class 
16:41:25.142 [ERROR] [org.gradle.BuildExceptionReporter] (org.apache.xmlbeans.XmlSimpleList$2) that doesn't come with an 
16:41:25.142 [ERROR] [org.gradle.BuildExceptionReporter] associated EnclosingMethod attribute. This class was probably produced by a 
16:41:25.142 [ERROR] [org.gradle.BuildExceptionReporter] compiler that did not target the modern .class file format. The recommended 
16:41:25.142 [ERROR] [org.gradle.BuildExceptionReporter] solution is to recompile the class from source, using an up-to-date compiler 
16:41:25.143 [ERROR] [org.gradle.BuildExceptionReporter] and without specifying any "-target" type options. The consequence of ignoring 
16:41:25.143 [ERROR] [org.gradle.BuildExceptionReporter] this warning is that reflective operations on this class will incorrectly 
16:41:25.143 [ERROR] [org.gradle.BuildExceptionReporter] indicate that it is *not* an inner class. 
... 

ここ

にエラーを(実行するタスクが働いています) build.gradleファイル:

buildscript { 
    repositories { 
     jcenter() 
    } 

    dependencies { 
     classpath 'org.javafxports:jfxmobile-plugin:1.0.0-b8' 
    } 
} 

apply plugin: 'org.javafxports.jfxmobile' 

mainClassName = "JavaFXStage" 
version = '1.0' 

repositories { 
    jcenter() 
} 

jfxmobile { 
    ios { 
     forceLinkClasses = ['ensemble.**.*'] 
    } 

    android { 

     javafxportsVersion = '8u40-b5' 
     compileSdkVersion = 23  
     applicationPackage = 'any.package.name' 

    } 
} 

dependencies{ 
    def poiVersion = "3.10.1" 
    compile "org.apache.poi:poi:${poiVersion}" 
    compile "org.apache.poi:poi-ooxml:${poiVersion}" 
    compile "org.apache.poi:ooxml-schemas:1.1" 
    compile "org.apache.xmlbeans:xmlbeans:2.6.0" 
} 

プロジェクトに関する詳細情報が必要な場合は、お気軽に聞いてください。

私の問題を解決するためのヒントがあれば感謝します。

トーマス

+0

xmlbeansは廃止されました(最終更新2012年は廃止と宣言されました2014)。なぜあなたはまだそれを使用していますか?それを使わずにプロジェクトをコンパイルできますか? – Itai

+0

私はxmlbeansなしでコンパイルして、私はまだ同じエラーがあります。 – Thomas

+0

添付したエラーログは、特にxmlbeansを参照しています。新しいエラーログとは何ですか? – Itai

答えて

2

Android上でのApache POIを使用すると、多数の制約のために箱から出して動作しません。そのうちの1つに、xmlbeans jarにいくつかのクラスが何度も含まれていることがあります。これはAndroidコンパイラを混乱させます。また、pacakge javaxのコードとコードのサイズに関する問題もあります。

これを解決しようとする二つのプロジェクト現在ありません:

両方に再パッケージするクラスによってこれを解決しようとするが、よりコンパクトなjarファイルをAndroidアプリケーションに追加することができます。 Android5xlsxは現在POI3.12に基づいており、3.15-beta1でpoi-on-androidに基づいており、最近のバージョンのPOIに対してかなり簡単に再構築できます。

+0

私はあなたのプロジェクトであなたが問題を解決するためにlintオプションを使用しているので私は2番目のリンクを使用し、私は前に言ったように私は私のデバイスにアプリをインストールする管理私はアプリを起動しようとすると黒い画面が表示されます。私はログファイルを掘り下げます。 – Thomas

0

私はgradle.buildでのXMLBeansを除くことにより、Dexの段階でエラーを解決:私はXMLBeansのが、他のパーサを使用していなかった私のJavaコードで

compile 'org.apache.poi:poi:3.16' 
compile ('org.apache.poi:poi-ooxml:3.16') { 
    exclude group: 'org.apache.xmlbeans', module: 'xmlbeans' 
} 

を。ここに私のインポートリストです:

import org.apache.poi.hssf.usermodel.HSSFCell; 
import org.apache.poi.hssf.usermodel.HSSFRow; 
import org.apache.poi.hssf.usermodel.HSSFSheet; 
import org.apache.poi.hssf.usermodel.HSSFWorkbook; 

import org.apache.poi.xssf.usermodel.XSSFCell; 
import org.apache.poi.xssf.usermodel.XSSFRow; 
import org.apache.poi.xssf.usermodel.XSSFSheet; 
import org.apache.poi.xssf.usermodel.XSSFWorkbook; 

import javax.xml.parsers.DocumentBuilderFactory; 
import javax.xml.parsers.ParserConfigurationException; 
import javax.xml.parsers.DocumentBuilder; 
import org.w3c.dom.Document; 
import org.w3c.dom.NodeList; 
import org.xml.sax.SAXException; 
import org.w3c.dom.Node; 
import org.w3c.dom.Element; 
import java.util.zip.ZipEntry; 
import java.util.zip.ZipInputStream; 
関連する問題