Ошибка импорта проекта Maven Android Android в Eclipse с помощью ADT 20
Я обновил плагин ADT до последней версии (20) и инструмента android-sdk. Теперь, когда я пытаюсь импортировать существующий Android Maven в Eclipse, создайте исключение An internal error occurred during: "Importing Maven projects".
com/android/io/StreamException
и создайте проект eclipse, но не как Android-проект, как и раньше. Предыдущие существующие (maven android) проекты в рабочей области прекрасно работают.
Полная трассировка исключения Eclipse при импорте проекта следующая:
!ENTRY org.eclipse.osgi 2 1 2012-06-29 19:02:34.421
!MESSAGE NLS unused message: LifecycleMappingPropertyPage_this_message in: org.eclipse.m2e.core.ui.internal.messages
!ENTRY org.eclipse.core.jobs 4 2 2012-06-29 19:03:03.953
!MESSAGE An internal error occurred during: "Importing Maven projects".
!STACK 0
java.lang.NoClassDefFoundError: com/android/io/StreamException
at me.gladwell.eclipse.m2e.android.project.EclipseAndroidProjectFactory.createAndroidProject(EclipseAndroidProjectFactory.java:17)
at me.gladwell.eclipse.m2e.android.project.EclipseAndroidProjectFactory.createAndroidProject(EclipseAndroidProjectFactory.java:1)
at me.gladwell.eclipse.m2e.android.AndroidMavenProjectConfigurator.configure(AndroidMavenProjectConfigurator.java:62)
at org.eclipse.m2e.core.project.configurator.AbstractLifecycleMapping.configure(AbstractLifecycleMapping.java:109)
at org.eclipse.m2e.core.internal.project.ProjectConfigurationManager.updateProjectConfiguration(ProjectConfigurationManager.java:414)
at org.eclipse.m2e.core.internal.project.ProjectConfigurationManager.configureNewMavenProject(ProjectConfigurationManager.java:240)
at org.eclipse.m2e.core.internal.project.ProjectConfigurationManager.importProjects(ProjectConfigurationManager.java:156)
at org.eclipse.m2e.core.ui.internal.wizards.MavenImportWizard$1.doCreateMavenProjects(MavenImportWizard.java:164)
at org.eclipse.m2e.core.ui.internal.wizards.AbstractCreateMavenProjectsOperation.run(AbstractCreateMavenProjectsOperation.java:73)
at org.eclipse.m2e.core.ui.internal.wizards.MavenImportWizard$3.runInWorkspace(MavenImportWizard.java:249)
at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
Caused by: java.lang.ClassNotFoundException: com.android.io.StreamException
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:513)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 12 more
Может ли кто-нибудь его решить? Требуется обновление соединителя m2e Android?
Обновление:
Это мой pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>your.company</groupId>
<artifactId>my-android-application</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>apk</packaging>
<name>my-android-application</name>
<dependencies>
<dependency>
<groupId>com.google.android</groupId>
<artifactId>android</artifactId>
<version>2.3.3</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<sourceDirectory>src</sourceDirectory>
<pluginManagement>
<plugins>
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<version>3.2.0</version>
<extensions>true</extensions>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<configuration>
<sdk>
<!-- platform or api level (api level 4 = platform 1.6)-->
<platform>10</platform>
</sdk>
</configuration>
</plugin>
</plugins>
</build>
</project></project>
Спасибо.
Ответы
Ответ 1
Это известная проблема с подключаемым модулем m2e-android из-за изменений в API ADT:
https://github.com/rgladwell/m2e-android/issues/89
Будьте терпеливы, пока мы находим исправление.
Обновление: Новый выпуск версии 0.4.2 устраняет эту проблему, выпущенную сегодня, запустите обновление Eclipse (Справка → Проверить наличие обновлений) и сообщите мне, разрешает ли это проблемы. p >
Ответ 2
изменить: Вместо этого вам может быть лучше получить обновленный проект Ricardo от github, переключившись на adt-20
, построив Maven, удалив соединитель M2E, как описано ниже, и установив новый соединитель M2E из me.gladwell.eclipse.m2e.android.update/target/repository в качестве локального репозитория, также как описано ниже. Спасибо, Рикардо!
У меня была эта проблема, и я не мог построить свой проект. Единственный способ, которым я обошел это, - понизить ADT до 18.0.0. Я не мог найти способ сделать это через SDK Manager и т.д., Так что это оказалось немного тяжелым испытанием - хотя я, вероятно, не делал этого самым разумным способом! Во всяком случае, я думал, что опубликую, что я пережил, если это кому-то поможет. Я забыл перезапустить Eclipse.:)
Это было на Eclipse 3.7 на Linux.
- Получить ADT zip: http://dl.google.com/android/ADT-18.0.0.zip
- Получите архив Android SDK Tools для вашей ОС: http://dl.google.com/android/android-sdk_r18-linux.tgz (замените linux.tgz на windows.zip или macosx.zip - извините, Qaru только позволяет мне две ссылки в моем посте!).
- Отключить автоматическое обновление программного обеспечения: Окно → Настройки → Установить/Обновить → Автоматические обновления, снимите флажок "Автоматически находить новые обновления и уведомлять меня".
- Удалите Android SDK Tools: Окно → Android SDK Manager, проверьте Android SDK Tools и нажмите "Удалить 1 пакет".
- Удалить ADT: Справка → Установить новое программное обеспечение → Что уже установлено? → Установленное программное обеспечение, выберите все компоненты Android * и Android Configurator для M2E и нажмите "Удалить".
- Извлеките ADT-18.0.0.zip и установите: Справка → Установить новое программное обеспечение → Добавить → Локальное и просмотреть, где вы его извлекли. Дайте локальному репозиторию имя и нажмите "ОК", затем выберите его из раскрывающегося списка "Работа с" и установите из него доступное программное обеспечение.
- Извлеките каталог инструментов из архива android-sdk_r18 в каталог android-sdks.
- Установите разъем Android M2E: Настройки → Maven → Открытие, нажмите "Открыть каталог", затем выберите соединитель. Отмените выбор любых функций ADT 20.0, если будет предложено.
Ответ 3
Теперь соединитель andriod maven, который он исправил для работы с ADT 20+, должен установить обновление только со следующего сайта обновления: http://rgladwell.github.com/m2e-android/updates/master/
Ответ 4
Просто откройте свой файл. XML и вкладку ниже "Графический макет" (в случае eclipse).
Вы все еще находите значок Android, который находится в верхнем правом углу, в котором подробно описывается версия, которая используется в моем случае, использовалась версия 18, я выбрал версию 17, и ошибка исчезла.