我正在尝试使用 android-quickstart 原型创建一个 Android 基础项目,并添加 RoboGuice、ActionBarSherlock 依赖项以及 RoboGuice-Sherlock 以将两者结合起来。
这是我的 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.myapp</groupId>
<artifactId>BaseApp</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>apk</packaging>
<name>BaseApp</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<platform.version> 4.1.1.4
</platform.version>
<android.plugin.version>3.6.0</android.plugin.version>
</properties>
<dependencies>
<dependency>
<groupId>com.google.android</groupId>
<artifactId>android</artifactId>
<version>${platform.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.roboguice</groupId>
<artifactId>roboguice</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>com.google.code.findbugs</groupId>
<artifactId>jsr305</artifactId>
<version>1.3.9</version>
</dependency>
<dependency>
<groupId>com.actionbarsherlock</groupId>
<artifactId>actionbarsherlock</artifactId>
<version>4.4.0</version>
<type>apklib</type>
</dependency>
<dependency>
<groupId>com.github.rtyley</groupId>
<artifactId>roboguice-sherlock</artifactId>
<version>1.5</version>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<pluginManagement>
<plugins>
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<version>${android.plugin.version}</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>16</platform>
</sdk>
</configuration>
</plugin>
</plugins>
</build>
</project>
但是 m2eclipse 不能与这个 Pom.xml 一起工作,因为它无法找到 apklib 依赖项。特别是我在 Eclipse 的“问题”选项卡下收到以下消息:
dependency=[com.actionbarsherlock:actionbarsherlock:apklib:4.4.0:compile] not found in workspace pom.xml /BaseApp line 1 me.gladwell.eclipse.m2e.android.markers.dependency.apklib
我尝试删除该<type>apklib</type>
行,但我的 ABS 资源(即所需的主题)没有导入到项目中。
我读过几个问题,apklib 类型只能在命令行上工作,如果我想坚持使用 IDE,我需要手动将 ABS 作为库导入。我做到了,但后来 RoboGuice 崩溃了,因为该项目变成了一个库项目,而且显然,资源 ID 在库项目中不再是最终的。(我得到的编译时错误是“注释属性 InjectView.value 的值必须是常量表达式”)。作为参考,这是我唯一的活动:
public class HelloAndroidActivity extends RoboSherlockActivity {
@InjectView(R.id.helloworld) TextView textView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView.setText("Roboguice says Hello World");
}
}
是否有任何适当的方法可以使用 maven 和 Eclipse 创建包含这三个元素的基础项目?