Я пытаюсь создать базовый проект Android с использованием архетипа Android-версии для быстрого запуска и добавление RoboGuice, зависимостей ActionBarSherlock и RoboGuice-Sherlock для объединения этих двух.Maven + 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. Speficically Я получаю следующее сообщение под вкладкой «Проблемы» в 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 (а именно необходимые темы) не импортируется в проект.
Я читал в several questions, что тип apklib работает только в командной строке, и если я хочу придерживаться IDE, мне нужно импортировать ABS вручную в качестве библиотеки. Я сделал это, но потом RoboGuice выйдет из строя, потому что проект становится библиотечным проектом и, по-видимому, идентификаторы ресурсов больше не являются окончательными в библиотечных проектах. (Ошибка времени компиляции - «Значение атрибута аннотации 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?
ли МВН работы в командной строке? Мы используем эти LIBS все время с МВН CMD линии сборках, но еще не пробовали затмение. – emmby