2011-12-13 8 views
13

Android(プライベート)アプリで使用するpoi-3.8.jarの軽量バージョンを探しています。 私は何らかの理由でAPKに1.7Mbのjarファイル全体を収めることができないようです(とにかくそうするのは間違いでしょう)。そして、私はdoc - > htmlとxls - > htmlの機能性、私は完全にjarファイルが必要なのかどうかはわかりません。Apache POIをAndroidに移植しようとしています

poi/hwpf/converterでorg.apache.poi.hwpf.converter.WordToHtmlExtracter.javaを抽出する方法を理解するのに数時間を費やしましたが、他の多くのものを使用しているようです。これが本当に私を驚かせるわけではないが、ここで誰かが私が容器を小さくするために取り除くことができるパッケージを知っているかもしれないと思っていた。誰かが時間の無駄だと私に伝えない限り、もっと時間を費やすことができて嬉しく思っています。そして、ソースのすべてがdocをhtmlファイルに変換する必要があります。

私は何も表示する必要はありません、私はちょうどhtml(と可能であればxlsにHTML)の "単純な"ドキュメントが必要です。私はPDF、パワーポイント、見通しなどに関連するものは何も必要ありません。

私はまあ、私はここに求めていたものの大半を行うことができた私は

乾杯

答えて

7

を見つける何でも共有して喜んでいますよ。それはjarファイルをインポートしています。 - ほとんどの時間クラッシュをdexingするEclipse上のRAMが不足しています(Eclipse.iniのXmxとxmsの値を調整して修正) - DEXファイルごとに64kのメソッド制限物事は複雑になりました。必要なPOIジャーをいくつかのDEXファイルに分割しなければならなかった。 (私はAndroidのブログからチュートリアルに従っていた:http://android-developers.blogspot.com/2011/07/custom-class-loading-in-dalvik.html

私の質問に対する真の答えは、 "はい、あなたは瓶の中のすべてが必要です"です。私はそれを基本的な "non open xml"ファイルのために作った。私のアプリはhtmlへの変換を非常にうまく行いますが、それも十分速いです。

「open XML」ファイルでも同じことをやろうとしていましたが、はるかに複雑です。私の小さなプロジェクトは、それが何をすべきかをしない、私はXMLBeansクラスを初期化するときにいくつかの奇妙な例外があります。ここに私のトレースは(醜さのため申し訳ありません)です:

12-19 12:07:10.790: W/dalvikvm(13385): Exception 
Ljava/lang/RuntimeException; thrown while initializing 
Lorg/apache/xmlbeans/impl/regex/SchemaRegularExpression; 
12-19 12:07:10.790: W/dalvikvm(13385): Exception 
Ljava/lang/ExceptionInInitializerError; thrown while initializing 
Lorg/apache/xmlbeans/impl/schema/BuiltinSchemaTypeSystem; 
12-19 12:07:10.790: D/dalvikvm(13385): Method.invoke() on bad class 
Lorg/apache/xmlbeans/impl/schema/BuiltinSchemaTypeSystem; failed 
12-19 12:07:10.790: W/dalvikvm(13385): Exception 
Ljava/lang/ExceptionInInitializerError; thrown while initializing 
Lorg/apache/xmlbeans/XmlBeans; 
12-19 12:07:10.790: W/System.err(13385): 
java.lang.reflect.InvocationTargetException 
12-19 12:07:10.790: W/System.err(13385): at 
java.lang.reflect.Method.invokeNative(Native Method) 
12-19 12:07:10.790: W/System.err(13385): at 
java.lang.reflect.Method.invoke(Method.java:491) 
12-19 12:07:10.790: W/System.err(13385): at 
t.fze.TestOfficeAndroidActivity.onCreate(TestOfficeAndroidActivity.java:55) 
12-19 12:07:10.790: W/System.err(13385): at 
android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048) 
12-19 12:07:10.790: W/System.err(13385): at 
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1712) 
12-19 12:07:10.790: W/System.err(13385): at 
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1764) 
12-19 12:07:10.790: W/System.err(13385): at 
android.app.ActivityThread.access$1500(ActivityThread.java:122) 
12-19 12:07:10.790: W/System.err(13385): at 
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1002) 
12-19 12:07:10.790: W/System.err(13385): at 
android.os.Handler.dispatchMessage(Handler.java:99) 
12-19 12:07:10.790: W/System.err(13385): at 
android.os.Looper.loop(Looper.java:132) 
12-19 12:07:10.790: W/System.err(13385): at 
android.app.ActivityThread.main(ActivityThread.java:4025) 
12-19 12:07:10.790: W/System.err(13385): at 
java.lang.reflect.Method.invokeNative(Native Method) 
12-19 12:07:10.790: W/System.err(13385): at 
java.lang.reflect.Method.invoke(Method.java:491) 
12-19 12:07:10.790: W/System.err(13385): at 
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) 
12-19 12:07:10.790: W/System.err(13385): at 
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599) 
12-19 12:07:10.790: W/System.err(13385): at 
dalvik.system.NativeStart.main(Native Method) 
12-19 12:07:10.790: W/System.err(13385): Caused by: 
org.apache.poi.POIXMLException: 
java.lang.reflect.InvocationTargetException 
12-19 12:07:10.790: W/System.err(13385): at 
org.apache.poi.xssf.usermodel.XSSFFactory.createDocumentPart(XSSFFactory.java:62) 
12-19 12:07:10.790: W/System.err(13385): at 
org.apache.poi.POIXMLDocumentPart.read(POIXMLDocumentPart.java:414) 
12-19 12:07:10.790: W/System.err(13385): at 
org.apache.poi.POIXMLDocument.load(POIXMLDocument.java:155) 
12-19 12:07:10.790: W/System.err(13385): at 
org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:174) 
12-19 12:07:10.790: W/System.err(13385): at 
org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:63) 
12-19 12:07:10.790: W/System.err(13385): at 
org.apache.poi.ss.examples.html.ToHtml.create(ToHtml.java:139) 
12-19 12:07:10.790: W/System.err(13385): at 
org.apache.poi.ss.examples.html.ToHtml.create(ToHtml.java:123) 
12-19 12:07:10.790: W/System.err(13385): ... 16 more 
12-19 12:07:10.790: W/System.err(13385): Caused by: 
java.lang.reflect.InvocationTargetException 
12-19 12:07:10.790: W/System.err(13385): at 
java.lang.reflect.Constructor.constructNative(Native Method) 
12-19 12:07:10.790: W/System.err(13385): at 
java.lang.reflect.Constructor.newInstance(Constructor.java:416) 
12-19 12:07:10.800: W/System.err(13385): at 
org.apache.poi.xssf.usermodel.XSSFFactory.createDocumentPart(XSSFFactory.java:60) 
12-19 12:07:10.800: W/System.err(13385): ... 22 more 
12-19 12:07:10.800: W/System.err(13385): Caused by: 
java.lang.ExceptionInInitializerError 
12-19 12:07:10.800: W/System.err(13385): at 
org.openxmlformats.schemas.drawingml.x2006.main.ThemeDocument$Factory.parse(ThemeDocument.java:71) 
12-19 12:07:10.800: W/System.err(13385): at 
org.apache.poi.xssf.model.ThemesTable.<init>(ThemesTable.java:38) 
12-19 12:07:10.800: W/System.err(13385): ... 25 more 
12-19 12:07:10.800: W/System.err(13385): Caused by: 
java.lang.ExceptionInInitializerError 
12-19 12:07:10.800: W/System.err(13385): at 
java.lang.reflect.Method.invokeNative(Native Method) 
12-19 12:07:10.800: W/System.err(13385): at 
java.lang.reflect.Method.invoke(Method.java:491) 
12-19 12:07:10.800: W/System.err(13385): at 
org.apache.xmlbeans.XmlBeans.getNoType(XmlBeans.java:856) 
12-19 12:07:10.800: W/System.err(13385): at 
org.apache.xmlbeans.XmlBeans.<clinit>(XmlBeans.java:881) 
12-19 12:07:10.800: W/System.err(13385): ... 27 more 
12-19 12:07:10.800: W/System.err(13385): Caused by: 
java.lang.ExceptionInInitializerError 
12-19 12:07:10.800: W/System.err(13385): at 
org.apache.xmlbeans.impl.schema.BuiltinSchemaTypeSystem.fillInType(BuiltinSchemaTypeSystem.java:1025) 
12-19 12:07:10.800: W/System.err(13385): at 
org.apache.xmlbeans.impl.schema.BuiltinSchemaTypeSystem.<clinit>(BuiltinSchemaTypeSystem.java:223) 
12-19 12:07:10.800: W/System.err(13385): ... 31 more 
12-19 12:07:10.800: W/System.err(13385): Caused by: 
java.lang.RuntimeException: Installation Problem??? Couldn't load 
messages: Can't find resource for bundle 
'org.apache.xmlbeans.impl.regex.message_fr_FR', key '' 
12-19 12:07:10.800: W/System.err(13385): at 
org.apache.xmlbeans.impl.regex.RegexParser.setLocale(RegexParser.java:88) 
12-19 12:07:10.800: W/System.err(13385): at 
org.apache.xmlbeans.impl.regex.RegexParser.<init>(RegexParser.java:78) 
12-19 12:07:10.800: W/System.err(13385): at 
org.apache.xmlbeans.impl.regex.ParserForXMLSchema.<init>(ParserForXMLSchema.java:28) 
12-19 12:07:10.800: W/System.err(13385): at 
org.apache.xmlbeans.impl.regex.RegularExpression.setPattern(RegularExpression.java:2996) 
12-19 12:07:10.800: W/System.err(13385): at 
org.apache.xmlbeans.impl.regex.RegularExpression.setPattern(RegularExpression.java:3009) 
12-19 12:07:10.800: W/System.err(13385): at 
org.apache.xmlbeans.impl.regex.RegularExpression.<init>(RegularExpression.java:2975) 
12-19 12:07:10.800: W/System.err(13385): at 
org.apache.xmlbeans.impl.regex.SchemaRegularExpression.<init>(SchemaRegularExpression.java:27) 
12-19 12:07:10.800: W/System.err(13385): at 
org.apache.xmlbeans.impl.regex.SchemaRegularExpression.<init>(SchemaRegularExpression.java:23) 
12-19 12:07:10.800: W/System.err(13385): at 
org.apache.xmlbeans.impl.regex.SchemaRegularExpression$1.<init>(SchemaRegularExpression.java:44) 
12-19 12:07:10.800: W/System.err(13385): at 
org.apache.xmlbeans.impl.regex.SchemaRegularExpression.buildKnownPatternMap(SchemaRegularExpression.java:43) 
12-19 12:07:10.800: W/System.err(13385): at 
org.apache.xmlbeans.impl.regex.SchemaRegularExpression.<clinit>(SchemaRegularExpression.java:38) 
12-19 12:07:10.800: W/System.err(13385): ... 33 more 
+2

これまでAndroid用のコードを共有したいですか? Android上でMS Officeのドキュメントを読むことに興味がないように思えます。あなたの投稿以外の便利なものは見つけられませんでした。私はいくつかのクローズドソースAPIを持っていますが、私は別の会社に連絡しようとしましたが、いずれも私の質問に答えなかったので、私は本当にまともな(あるいは実際には)ソリューションを見つけることを切望していますAndroidのドキュメント\ あなたは私がドキュメントを表示することに興味があるので、さまざまなフォーマットのhtmlへの変換が必要です。 – Darwind

+2

こんにちはダーウィンド、はい私のコードを見てみることができます。実際には、私はPOIでそれを動作させることができました。私は私の会社のブログについて完全な説明を掲載しました(申し訳ありません、フランス語です!) パート1(Androidでの単純なPOI使用): http://blog.oxiane.com/2011/12/30/visualiser-un-fichier-office-doc-xls-ppt-sous-android/ パート2(Office 2007以上のドキュメント用)http://blog.oxiane.com/2011/12/30/visualiser-un-fichier-office-doc-xls-ppt%E2%80%A6-sous-android-23/ それとも、私のコードを見てみることができます(かなり厄介が、それは働く!)https://code.google.com/p/display-msoffice-docs-android-with-apache-poi/オン –

+0

私はこのPOIポートで自分を殺した直後に、Office 2007以上のドキュメントを処理するためのもっと簡単なソリューションがあることを発見しました。私は、このLIBを使用:それは「バイナリ」Office文書(Word 2003の...)ので、あなたと一緒に動作しませんhttp://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2006/11/21/openxmlandjava.aspxこれらのファイルに対してPOIを実装する必要がありますが、POIを移植するよりも簡単です。実際には、動作させるためにはほんのわずかな調整しか必要としませんでした。私はまだ私のコードを共有していない。 –

3

あなたにもProGuard shrinkingを使用することができます。 apkのサイズを数回まで減らすことができます。

+0

アイデアありがとうございますが、残念ながら、私が削減しようとしていたAPKのサイズではなく、アプリケーションのメソッドの数です。上記のコメントをすべて読んだ場合、私の主な問題は64k私がインポートしたいjarファイルのメソッド。そして、64kのメソッドはあまりにも多く、私はAPKをコンパイルすることはできません! –

2

(私はそう言う可能性がある場合)私は最近XSSFの「ポート」を作成しました: https://stackoverflow.com/a/25564538/2155217

それはXLSXファイルを読み書きのための十分です。ファイルに図面や図表などの余分な機能が含まれていると正しく動作しないことがあります。

+0

こんにちはAndrew!あなたがそこでやった素晴らしい仕事。私はまだそれをテストしていませんが、あなたは "実行する>何が失敗したかを見て>そのファイルをjarファイルに追加する"のように見えます。ほとんどの瓶が実際に必要であることがわかるまで、それをやるのも私の最初のやり方でした。どの機能が欠落しているかをより正確に特定できましたか? –

関連する問題