Повторяющийся файл при развертывании apk - PullRequest
4 голосов
/ 12 ноября 2011

Эта проблема, похоже, возникает у нескольких человек, но я не смог применить решение, предложенное в других темах по тем или иным причинам, поэтому ...

Я пытаюсь создатьпростое приложение для Android со встроенным веб-сервером.Сервер выбора пристань.Я использую maven для управления зависимостями с помощью плагина maven-android-plugin.Я добавил jetty-server v8.x в качестве зависимости с областью действия по умолчанию.Когда я пытаюсь развернуть мой apk в песочнице, я получаю сообщение об ошибке

Обнаружен дубликат файла для APK: about.html

Таким образом, данный файл взят из пакета Jetty или, скорее, этовстречается в двух пакетах Jetty, один из которых является зависимым от сервера Jetty.Похоже, что другие темы предлагают удалить файл из одной или другой банки, но на самом деле это не масштабируемое решение, поскольку я не являюсь владельцем банки.

Есть ли более общее решение для этой проблемы?проблема?Что-то, что управляет конфликтом и временем сборки или развертывания?

Должен заметить, я немного новичок в Java и прошел путь NetBeans и maven, потому что это инструментарий, с которым я знаком.

Ответы [ 4 ]

4 голосов
/ 23 декабря 2011

ОК, нашел его.Решение заключается в сборке с использованием следующей команды

mvn android:deploy -Dandroid.extractDuplicates=true
2 голосов
/ 17 ноября 2011

Существует несколько проблем:

Во-первых, для интеграции Jetty вашему проекту потребуется файл pom.xml.Android APK (как есть) не знает, как разрешить pom с зависимостями Maven без какого-либо моста.Итак, вам нужно установить несколько плагинов для управления Pom на Eclipse.Следуйте инструкциям здесь: http://rgladwell.github.com/m2e-android/ (мне было проще создать новый проект, используя описанный здесь метод, чем преобразовывать мое существующее приложение Android в проект Maven, но я уверен, что он будет работать в любом случае.)

Во-вторых, после того, как вы это установили, вам нужно будет убедиться, что ваш pom.xml содержит необходимые зависимости, цели сборки и переменные.Итак, откройте ваш pom.xml и убедитесь, что у вас есть следующее:

  1. В узле "build":

    sourceDirectory -> src

    defaultGoal -> install (я полагаю ...)

  2. В узле "зависимостей":

    ... все зависимости jetty / cometd (org.cometd.java, org.eclipse.jetty и т. д.)

В-третьих, вы должны знать, что вы не можете просто нажать зеленую кнопку запуска и запустить приложение через ADB.Вы должны установить его maven-способом (Run As -> Maven build / install / test / what)

1 голос
/ 12 ноября 2011

Вы должны открыть свой военный файл и проверить, есть ли у вас там два файла about.html.Некоторое время назад у меня было два файла web.xmls в моих военных файлах.Если у вас действительно есть дубликаты, вы должны попытаться исключить эти файлы.

Возможно, у вас есть один файл в вашем проекте, и дубликат создается плагином maven.

0 голосов
/ 18 ноября 2011

Я также только что понял, что вы, вероятно, уже правильно используете плагин Android-Maven.Еще один важный совет: измените область на время выполнения на зависимостях пристаней.Для меня это сборка прошла успешно, тогда как при использовании области действия по умолчанию (компиляция) всегда выкидывался дубликат файла в APK error.

...