我想使用 eclipse 在 Android 应用程序中使用 geotools(目前是 8.0-M3,也可能是 2.7.3) 库。 (win7 教授,4GB 内存)
但是构建过程崩溃了,我收到以下错误
未处理的事件循环异常 Java 堆空间
java堆空间问题应该可以解决,但似乎还有更多。 (3GB 应该足够了,不是吗?)
我的最终目标是能够通过 OGC“网络要素服务”和“网络地图服务”在 geoserver 上请求 postgres postgis 数据库。
我已经将 eclipse ini 设置为
--launcher.XXMaxPermSize
128m
--launcher.defaultAction
打开文件-vmargs
-Xms40米
-XMX3700米
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中
-> 将 jar 添加到项目构建路径(应该将 java 移植到 dx)
(经过很长一段时间(几天)的试用,这是我知道的唯一方法,为应用程序提供所有必要的类。至少 Eclipse 不会标记任何缺失的内容)。
编译完成后,eclipse控制台输出:
Dx 警告:忽略匿名内部类的 InnerClasses 属性......
几个班级。可能是因为jre lib。
我还有哪些其他选项可以为我的 android 项目中的 geotools 提供必要的 java 库?
或者你对我下面提到的试验有任何了解吗?
PS:Android书籍建议仅从jar文件中复制缺少的类(及其依赖项哈哈)......(我可能会更好地编写新的)
我已经尝试过使用 Maven 插件。它在使用 geotools 的纯 java 项目中运行良好,或者只要我不使用 geotools 就可以处理 android 项目。
如果maven包含一个使用geotools的android项目,则库由maven加载,但然后android会说类似“手动修改R类”之类的内容...
(我无法恢复或重新创建)
有没有办法从 Eclipse 项目中复制 Maven 依赖库(其中应该包含我需要的内容)。 (我想我可以将 jars 从 win 存储库文件夹中复制出来,但这也包括许多其他 jars)。
Android 提供了“Java 本机接口”,允许使用 C++ 或其他库。是否可以选择解决缺少/交叉库的问题(我还没有 JNI 经验)?
该应用程序代码很短,如果对您有帮助,我可以粘贴它。