gpt4 book ai didi

java - Android 上的 Preon

转载 作者:太空狗 更新时间:2023-10-29 13:41:25 24 4
gpt4 key购买 nike

我尝试在 Android 2.1 上运行示例 Preon 应用程序,但没有成功。我想知道是否可以在 Android 上运行 Preon 应用程序。让 Preon 框架 Dalvik 变得友好有多难?

Preon 是一个 Java 库,用于以声明方式为比特流压缩数据构建编解码器。想想 JAXB 或 Hibernate,然后再考虑由 Wilfred Springer 编写的二进制编码数据。


以下是我尝试在 Android 中运行一个使用 Preon 的简单应用程序时的发现:

Preon 依赖于 Pecia。 Pecia 间接依赖于 stax-api,它在 Android 中不受开箱即用的支持。 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

[信息] ------------------------------------------ ------------------------------

[信息] 构建失败

[信息] ------------------------------------------ ------------------------------

[INFO]总时间:19.717s

[信息] 完成时间:2011 年 3 月 23 日星期三 14:30:55 PST

[INFO] 最终内存:7M/62M

最佳答案

好吧,我会回答我自己的问题。可以在 Android 中使用 Preon 框架。但是,Preon 并非开箱即用。在进行以下更改后,我设法运行了一个示例应用程序:
1.我移动了所有的log4.properties preon 项目到他们的 对应的/src/test/resources 目录。
2. 移除对pecia的依赖。
3. 在preon-binding中嵌入pecia的以下接口(interface):
文档元素.java
文件管理器.java
类.java
ParaContents.java
4. org.codehaus.preon.code.Codecs:
我注释掉了以下导入及其所有相关代码(在此更改后无法编译的代码):
导入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 代码,将文档代码与运行时依赖项分开。

Wilfred,如果你愿意,我可以为你的项目做出贡献。

奥斯卡。

关于java - Android 上的 Preon,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5264240/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com