我已经更新到最新版本的ADT插件,我面对this issue,解决了更新m2e-android eclipse插件的问题。现在,我可以通过控制台编译我的项目,但不能用eclipse编译。这是eclipse中pom.xml
文件引发的异常:
dependency=[com.actionbarsherlock:library:apklib:4.1.0:compile] not found in workspace
在以前版本的ADT / m2e-android中,我能够毫无问题地构建控制台和eclipse。
有谁知道如何解决这个问题?也许我的pom.xml错了?
感谢您的时间。
目前正在使用:
的pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<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>com.jelies</groupId>
<artifactId>my-project</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>apk</packaging>
<dependencies>
<dependency>
<groupId>android</groupId>
<artifactId>android</artifactId>
<version>4.1_r2</version>
<scope>provided</scope>
</dependency>
<!-- some unrelated dependencies -->
<dependency>
<groupId>com.actionbarsherlock</groupId>
<artifactId>library</artifactId>
<version>4.1.0</version>
<type>apklib</type>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.1.2</version>
<executions>
<execution>
<id>attach-sources</id>
<phase>verify</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.4</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<version>3.3.0</version>
<configuration>
<sdk>
<platform>16</platform>
</sdk>
<emulator>
<avd>avd-4.1</avd>
</emulator>
<deleteConflictingFiles>true</deleteConflictingFiles>
<undeployBeforeDeploy>true</undeployBeforeDeploy>
</configuration>
<extensions>true</extensions>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>eclipse</id>
<activation>
<!-- This profile is only activated when m2e.version is present (only
in eclipse) -->
<property>
<name>m2e.version</name>
</property>
</activation>
<dependencies>
<dependency>
<groupId>com.google.android</groupId>
<artifactId>support-v4</artifactId>
<version>r7</version>
<scope>provided</scope>
</dependency>
</dependencies>
</profile>
</profiles>
</project>
修改
答案是对的。让ABS库项目在我的工作区中进行了mavenized,错误消失了!但是,出现了另一个问题:ABS传递依赖项被添加到我的项目中,导致eclipse无法启动应用程序。这是您可以关注here的已知问题。
答案 0 :(得分:10)
从Android 0.4.2开始,您现在需要在Eclipse工作区中对Android库项目进行mavenise,以便m2e-android成功检测它们。可以在此处找到ActionBarSherlock的POM:
https://github.com/JakeWharton/ActionBarSherlock/blob/master/library/pom.xml#
注意: m2e-android是测试版软件,因此可能会在版本之间发生可能影响功能的更改。
答案 1 :(得分:2)
对于那些不知道“MAVENIZED”意味着将一个简单的项目转换为Maven项目的人。
在Eclipse中,右键单击项目,配置 - &gt;转换为Maven项目
答案 2 :(得分:1)
只有在通过配置文件使用eclipse时才能将actionbarsherlock依赖项包含在jar文件中
<profile>
<id>m2e</id>
<activation>
<property><name>m2e.version</name></property>
</activation>
<dependencies>
<dependency>
<groupId>com.actionbarsherlock</groupId>
<artifactId>actionbarsherlock</artifactId>
<version>${abs.version}</version>
<type>jar</type>
</dependency>
</dependencies>
</profile>
并且不需要将整个actionbarsherlock包含在eclipse中作为项目
答案 3 :(得分:1)
我写过关于mvn + eclipse + action bar sherlock integration http://v.zasadnyy.com/blog/abs-maven-eclipse-integration/
的详细教程希望它会有所帮助。
答案 4 :(得分:1)
将其作为依赖项添加到父pom.xml文件中:
<dependency>
<groupId>com.actionbarsherlock</groupId>
<artifactId>actionbarsherlock</artifactId>
<type>apklib</type>
<version>4.2.0</version>
</dependency>
以下几行到您的项目pom.xml:
<dependency>
<groupId>com.actionbarsherlock</groupId>
<artifactId>actionbarsherlock</artifactId>
<version>4.2.0</version>
</dependency>