2013-08-13 2 views
4

Я пытаюсь создать базовый проект 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?

ответ

1

Оказывается, я случайно нажал флажок «Является ли библиотека» на «Свойства проекта». Теперь он работает с ABS, импортированным вручную как библиотека.

Жаль, хотя и не будучи в состоянии использовать Maven непосредственно :(

+0

ли МВН работы в командной строке? Мы используем эти LIBS все время с МВН CMD линии сборках, но еще не пробовали затмение. – emmby

Смежные вопросы