Приложение для Android основано на библиотеке геотурсов, в которой отсутствуют нативные Java-библиотеки - PullRequest
1 голос
/ 24 ноября 2011

Я хочу использовать библиотеку geotools (в настоящее время 8.0-M3, может быть также 2.7.3) в приложении Android, используя eclipse. (win7 prof, 4 Гб оперативной памяти) Но сбой процесса сборки, и я получаю следующую ошибку

Необработанное исключение цикла событий Пространство кучи Java

Проблема с пространством кучи Java должна быть решена, но, похоже, это еще не все. (3Гб должно быть достаточно, не так ли?)

Моя последняя цель - иметь возможность запрашивать postgres postgis db на геосервере через OGC "сервис веб-объектов" и "сервис веб-карт".

Я уже установил затмение ini на

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

Для геотруса требуется больше, чем для андроида (по сравнению с jre6 (1.6.0_24)).

-> Таким образом, я копирую целые jar-файлы из папки jre6 плюс jts-1.8.jar, а также geotools jars, в отдельную (win) папку. (Maven (не используется в данном случае!) Сам по себе загружает lib jts-1.1.3, это имеет какое-то значение?) Размер всей папки jar составляет почти 80 МБ.

-> Создать новую папку в struture проекта eclipse android.

-> импортировать файлы jar из папки win в eclipse

-> добавить jar-файлы к пути сборки проекта (который должен портировать java на dx) (После долгого (дней) пробного использования это единственный способ, которым я знаю, предоставить все необходимые классы приложению. По крайней мере, затмение не помечает ничего пропавшего).

После того, как компиляция начала вывод консоли eclipse:

Предупреждение Dx: игнорирование атрибута InnerClasses для анонимного внутреннего класса .....

для нескольких классов. Вероятно, из-за jre lib.

Какие еще варианты для предоставления гео-инструментам необходимых Java-библиотек в моем проекте Android у меня есть? Или у вас есть какое-либо представление об испытаниях, о которых я упоминал ниже?

PS: книги по Android рекомендуют копировать только отсутствующие классы (и их зависимости, ха-ха) из файлов jar ..... (я, вероятно, лучше напишу им новые)

Я уже пробовал использовать плагин maven. Что хорошо работает в чистом Java-проекте, использующем geotools, или, как это делается для проекта Android, пока я не использую geotools. Если maven включает проект Android с использованием geotools, библиотеки загружаются maven, но затем android говорит что-то вроде «R-класс изменен вручную» ... (что я не могу восстановить или воссоздать)

Есть ли способ скопировать библиотеку зависимостей maven (которая должна состоять из того, что мне нужно) из проекта eclipse. (Я думал, что смогу скопировать банки из папки репозитория win, но это также относится и ко многим другим банкам).

Android предоставляет «собственный интерфейс Java», который позволяет использовать C ++ или другие библиотеки. Будет ли вариант окружить проблему отсутствующих / скрещивающихся библиотек (у меня пока нет опыта в JNI)?

Код приложения довольно короткий, если он поможет, я могу вставить его.

1 Ответ

2 голосов
/ 24 ноября 2011

Какие другие варианты предоставления геотурм необходимых Java-библиотек в моем проекте Android у меня есть?

Если вам нужны классы, которые являются частью стандартного Java-дистрибутива, но отсутствуют в Android, вам не повезло, кроме как переписать геотрузы, чтобы избежать необходимости в этих классах.

Если вам нужны классы, являющиеся частью других сторонних библиотек Java, добавьте эти сторонние библиотеки Java в свой проект.

Из краткого изучения геоинструментов я подозреваю, что для работы на Android его необходимо существенно переписать.

* * 1010

PS: книги по Android рекомендуют копировать только отсутствующие классы (и их зависимости, ха-ха) из файлов jar

Мои книги нет. Любому автору, сообщающему об этом, необходимо проверить свою голову.

...