3

Android 2.1 で Preon のサンプル アプリケーションを実行しようとしましたが、うまくいきませんでした。Android で Preon アプリケーションを実行することさえ可能なのでしょうか。Preon フレームワークの Dalvik を使いやすくするのはどれくらい難しいでしょうか?

Preon は、宣言的な方法でビットストリーム圧縮データのコーデックを構築するための Java ライブラリです。JAXB や Hibernate を考えてみてください。ただし、Wilfred Springer によって記述されたバイナリ エンコード データについて考えてみてください。


以下は、Android で Preon を使用する単純なアプリケーションを実行しようとしたときの私の発見です。

Preon は Pecia に依存しています。Pecia は、Android でそのままではサポートされていない stax-api に間接的に依存しています。Preon コア処理で stax-api を使用していますか? Preon の依存関係から stax-api を除外できますか?

pecia を依存関係から除外した後 (結果を知らずに)、preon が log4j.properties ファイルの複数のコピーを持っていることがわかりました。log4j.properties ファイルを preon および pecia プロジェクトの /src/test/resources ディレクトリに移動して、クラスに持ち込まないようにすることをお勧めします。

log4j.properties ファイルが重複しているため、android-maven-plugin はパッケージのゴールで失敗し、次のメッセージが表示されます。

[情報] java.util.zip.ZipException: エントリが重複しています: log4j.properties

[情報] - - - - - - - - - - - - - - - - - - - - - - - - -------------------------

[情報] ビルドの失敗

[情報] - - - - - - - - - - - - - - - - - - - - - - - - -------------------------

[情報] 合計時間: 19.717 秒

[情報] 終了: 2011 年 3 月 23 日水曜日 14:30:55 PST

[情報] 最終記憶: 7M/62M

4

2 に答える 2

2

さて、私は自分の質問に答えます。Android で Preon フレームワークを使用することは可能です。ただし、Preon はそのままでは機能しません。以下の変更を行った後、サンプル アプリケーションを実行することができました
。 1. preon プロジェクトのすべての log4.properties を、対応する /src/test/resources ディレクトリに移動しました。
2. pecia への依存を削除します。 3. pecia
からの次のインターフェイスを preon-binding に 埋め込み まし た。 この変更後にコンパイルされないもの): import javax.xml.stream.XMLStreamException;







nl.flotsam.pecia.builder.ArticleDocument をインポートします。
nl.flotsam.pecia.builder.base.DefaultArticleDocument をインポートします。
nl.flotsam.pecia.builder.base.DefaultDocumentBuilder をインポートします。
nl.flotsam.pecia.builder.html.HtmlDocumentBuilder をインポートします。
nl.flotsam.pecia.builder.xml.StreamingXmlWriter をインポートします。
nl.flotsam.pecia.builder.xml.XmlWriter をインポートします。
5. org.codehaus.preon.codec.ObjectCodeFactory
をコメントアウト:
/* target.document(codec.getCodecDescriptor().reference(CodecDescriptor.Adjective.THE, false)); */

提案:

preon コードをリファクタリングして、ドキュメンテーション コードを実行時の依存関係から分離することをお勧めします。

ウィルフレッド、あなたが望むなら、私はあなたのプロジェクトに貢献できます.

オスカー。

于 2011-03-28T21:19:06.930 に答える
0

Java Binary Block Parserもご覧ください。ライブラリは Android 2.1 以降と互換性があります。

于 2015-03-31T08:48:56.890 に答える