Android应用程序构建在缺少本机java库的geotools库上

时间:2011-11-24 12:11:42

标签: android eclipse geotools heap-size

我想使用eclipse在Android应用中使用geotools(目前8.0-M3,也可能是2.7.3)库。 (win7教授,4gb ram) 但构建过程崩溃,我得到以下错误

  
    

未处理的事件循环异常Java堆空间

  

java堆空间问题应该可以解决,但似乎还有更多。 (3gb应该够了,不是吗?)

我的最终目标是能够通过OGC“网络功能服务”和“网络地图服务”在地理服务器上请求postgres postgis数据库。

我已经将日食ini设置为

  
    

- launcher.XXMaxPermSize     128米     --launcher.defaultAction     openFile -vmargs     -Xms40m     -Xmx3700m

  

Geotools需要的不仅仅是android库(与jre6(1.6.0_24)相比)提供的。

- >所以我将整个罐子从jre6文件夹加上jts-1.8.jar和geotools罐子复制到一个单独的(win)文件夹中。 (Maven(在这种情况下不使用!)本身加载jts-1.1.3 lib,它有什么不同吗?) 整个jar文件夹的大小接近80Mb。

- >在eclipse android项目结构中创建一个新文件夹。

- >将win文件夹中的jar文件导入eclipse

- >将jar添加到项目构建路径(应该将java移植到dx) (经过很长一段时间(几天)的试验,这是我所知道的唯一方法,为应用程序提供所有必要的课程。至少eclipse不会标记任何遗漏)。

编译完成后,eclipse控制台输出:

  
    

Dx警告:忽略匿名内部类的InnerClasses属性.....

  

几个班级。可能是因为jre lib。

我的android项目中有哪些其他选项可以为geotools提供必要的java库? 或者你对我下面提到的试验有什么想法吗?

PS:Android书籍建议只从jar文件中复制缺少的类(及其依赖项Haha).....(我可能最好把它们写成新的)

我已经尝试过使用maven插件了。这在使用geotools的纯java项目中工作得很好,或者因为它不使用geotools来处理android项目。 如果maven包含一个使用geotools的android项目,那么libs是由maven加载的,但是android会说像“手动修改R类”...... (我无法恢复,或重新创建)

有没有办法从eclipse项目中复制maven依赖库(应该包含我需要的东西)。 (我以为我可以从win存储库文件夹中复制罐子,但这也包括其他许多罐子。)

Android提供“Java Native Interface”,允许使用C ++或其他库。是否可以选择包围丢失/交叉的libs(我还没有JNI经验)?

应用程序代码很短,如果它可以帮助我我可以粘贴它。

1 个答案:

答案 0 :(得分:2)

  

我的android项目中有哪些其他选项可以为geotools提供必要的java库?

如果您需要属于标准Java发行版但不在Android中的类,那么除了重写geotools以避免需要这些类之外,您运气不好。

如果您需要属于其他第三方Java库的类,请将这些第三方Java库添加到项目中。

通过对geotools的简短检查,我怀疑它需要大量重写才能在Android上运行。

  PS:Android书籍建议只从jar文件中复制缺少的类(及其依赖项Haha)

我的书没有。任何提出建议的作者都需要对其进行检查。