我已将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>
感谢。
答案 0 :(得分:27)
编辑除了这样做之外,您现在可以更好地从github获取Ricardo的更新项目,切换到adt-20
分支,使用Maven构建,卸载M2E连接器如下所述,并从me.gladwell.eclipse.m2e.android.update / target / repository安装新的M2E连接器作为本地存储库,也如下所述。谢谢,里卡多!
我遇到了这个问题,无法构建我的项目。我绕过它的唯一方法是将ADT降级到18.0.0。我无法通过SDK Manager等找到这样做的方法,所以这结果有点像折磨 - 虽然我很可能没有做到最明智的方式!无论如何,我想我会发布我经历过的事情以防万一它可以帮助任何人。我遗漏了无用的Eclipse重启。 :)
这是在Linux上的Eclipse 3.7上。
答案 1 :(得分:18)
这是由于ADT API的更改导致m2e-android插件的已知问题:
https://github.com/rgladwell/m2e-android/issues/89
找到解决办法时请耐心等待。
更新:新的0.4.2版本修复了今天发布的这个问题,请运行Eclipse更新(帮助 - >检查更新)并告诉我这是否可以解决您的问题。< / p>
答案 2 :(得分:4)
现在修复的android maven连接器适用于ADT 20+,只需安装以下更新站点的更新:http://rgladwell.github.com/m2e-android/updates/master/
答案 3 :(得分:3)
只需打开您的文件即可。 “图形布局”下面的XML和选项卡(在eclipse的情况下)。 你仍然找到位于右上方的Android图标,详细说明我的案例中使用的版本是使用版本18,我选择了版本17,错误消失了。