使用ADT 20将Maven Android Android项目导入Eclipse时出错

我将ADT插件更新到最新版本(20)和android-sdk工具。 现在,当我尝试将现有的Android Maven导入Eclipse时引发exceptionAn internal error occurred during: "Importing Maven projects". com/android/io/StreamException An internal error occurred during: "Importing Maven projects". com/android/io/StreamException ,并创建eclipse项目但不像以前那样像Android项目。 以前在工作区中存在的(maven android)项目工作正常。

导入项目时的Eclipse完整exception跟踪如下:

 !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:

  4.0.0 your.company my-android-application 1.0-SNAPSHOT apk my-android-application   com.google.android android 2.3.3 provided    ${project.artifactId} src    com.jayway.maven.plugins.android.generation2 android-maven-plugin 3.2.0 true      com.jayway.maven.plugins.android.generation2 android-maven-plugin    10       

谢谢。

  • 使用maven android archetype和eclipse
  • 为什么在使用Android Studio / IntelliJ时不能正确执行我的pom?
  • 使用gradle(Android Studio)和本地Maven回购时无法构build应用程序
  • ADT 22 - 升级后缺少aapt.exe
  • Gradle发布到Artifactory的特定回购
  • Android库 - 使用Gradle将多个变体发布到本地Maven仓库
  • 如何在build.gradle中包含多个存储库?
  • Gradle无法解析Android Studio中的依赖项
  • 这是由于ADT API的更改导致m2e-android插件的已知问题:

    https://github.com/rgladwell/m2e-android/issues/89

    我们find解决办法时请耐心等待。


    更新:新的0.4.2版本修复了今天发布的这个问题,请运行Eclipse更新(帮助 – >检查更新)并告诉我这是否可以解决您的问题。

    编辑:你可能现在最好从github获得Ricardo的更新项目,切换到adt-20分支,使用Maven构建,卸载如下所述的M2E连接器,以及从me.gladwell安装新的M2E连接器。 .eclipse.m2e.android.update / target / repository作为本地存储库,也如下所述。 谢谢,里卡多!


    我有这个问题,无法建立我的项目。 我绕过它的唯一方法是将ADT降级到18.0.0。 我无法通过SDK Manager等find这样做的方法,所以这结果有点像折磨 – 虽然我很可能没有做到最明智的方式! 无论如何,我想我会发布我经历过的事情以防万一它可以帮助任何人。 我遗漏了无数的Eclipse重启。 🙂

    这是在Linux上的Eclipse 3.7上。

    • 获取ADT zip: http : //dl.google.com/android/ADT-18.0.0.zip
    • 获取适用于您的操作系统的Android SDK工具存档: http : //dl.google.com/android/android-sdk_r18-linux.tgz (将linux.tgz替换为windows.zip或macosx.zip – 抱歉,Stack Overflow只允许我在我的post中有两个链接!)。
    • 禁用自动软件更新:窗口 – >首选项 – >安装/更新 – >自动更新,取消选中“自动查找新更新并通知我”。
    • 卸载Android SDK工具:窗口 – > Android SDK Manager,检查Android SDK工具,然后单击“删除1个包”。
    • 卸载ADT:帮助 – >安装新软件 – >已安装的内容? – >已安装的软件,选择所有Android *组件和M2E的Android配置器,然后单击“卸载”。
    • 解压缩ADT-18.0.0.zip并安装:帮助 – >安装新软件 – >添加 – >本地并浏览到解压缩的位置。 为本地存储库命名并单击“确定”,然后从“使用”下拉列表中选择它并从中安装可用的软件。
    • 将android-sdk_r18存档中的tools目录解压缩到你的android-sdks目录中。
    • 安装Android M2E连接器:首选项 – > Maven – > Discovery,单击“打开目录”,然后选择连接器。 如果出现提示,请取消选择任何ADT 20.0function。

    现在修复的andriod maven连接器适用于ADT 20+,只需安装以下更新站点的更新: http://rgladwell.github.com/m2e-android/updates/master/http://rgladwell.github.com/m2e-android/updates/master/

    只需打开您的文件。 “图形布局”下面的XML和选项卡(在eclipse的情况下)。 您仍然find位于右上角的Android图标,其中详细说明了我的案例中使用的版本是使用版本18,我选择了版本17并且错误消失了。