我想在Android应用程序中使用geotools(目前为8.0-M3,也可能是2.7.3)库,使用eclipse。(win7 prof,4gb ram)但是构建过程崩溃,我得到以下错误
未处理的事件循环异常 Java 堆空间
java堆空间问题应该是可以解决的,但似乎还有更多。(3gb应该够了吧?)
我的最终目标是能够通过OGC“网络要素服务”和“网络地图服务”在geoserver上请求一个postgres postgis db。
我已经将eclipse ini设置为
--launcher.XXMaxPermSize 128m --launcher.defaultAction openFile -vmargs -Xms40m -Xmx3700m
Geotools 需要的不仅仅是 android 库(与 jre6 (1.6.0_24) 相比)提供的。
-> 所以我将 jre6 文件夹中的整个 jar 加上 jts-1.8.jar 加上 geotools jar 复制到一个单独的(win)文件夹中。(Maven(在这种情况下不使用!)自己加载 jts-1.1.3 lib,有什么区别吗?)整个 jar 文件夹的大小接近 80Mb。
-> 在 eclipse android 项目结构中创建一个新文件夹。
-> 将win文件夹中的jar文件导入eclipse
- >将罐子添加到项目构建路径(应该将java移植到dx)(经过很长时间(几天)的试验,这是我知道的唯一方法,为应用程序提供所有必要的类。至少eclipse没有标记任何丢失的东西)。
编译后eclipse控制台输出:
Dx 警告:忽略匿名内部类的 InnerClasses 属性.....
几个班。可能是因为 jre lib。
我还有哪些其他选项可以在我的 android 项目中为 geotools 提供必要的 java 库?或者你对我下面提到的试验有任何想法吗?
PS:Android 书籍建议只从 jar 文件中复制缺少的类(及其依赖项哈哈).....(我可能会更好地将它们写成新的)
我已经尝试过使用 maven 插件。在使用geotools的纯java项目中效果很好,或者只要我不使用geotools,它就可以处理android项目。如果maven包含一个使用geotools的android项目,则libs由maven加载,但是android会说“手动修改R类”......(我无法恢复或重新创建)
有没有办法从eclipse项目中复制maven依赖库(它应该包含我需要的东西)。(我以为我可以将罐子从 win 存储库文件夹中复制出来,但这也包括许多其他罐子)。
Android 提供了一个“Java Native Interface”,允许使用 C++ 或其他库。是否可以选择解决丢失/交叉库的问题(我还没有 JNI 的经验)?
应用程序代码很短,如果对您有帮助,我可以粘贴它。