2013-08-13 3 views
4

android-quickstart archetype을 사용하고 RoboGuice, ActionBarSherlock 의존성, RoboGuice-Sherlock을 추가하여 Android 기본 프로젝트를 만들려고합니다. apklib 종속성을 찾을 수 없습니다로Maven + RoboGuice + ActionBarSherlock + RoboGuice-Sherlock

<?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 작업 :

이 내 pom.xml 파일입니다. 는 Speficically 나는 이클립스에서 "문제"탭에서 다음과 같은 메시지가 점점 오전 :

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를 사용하여이 세 가지 요소로 기본 프로젝트를 만드는 적절한 방법이 있습니까?

답변

1

나가서 실수로 프로젝트 속성에서 "라이브러리 여부"확인란을 클릭했습니다. 이제 수동으로 ABS로 가져온 라이브러리와 함께 작동합니다.

그것은 메이븐을 사용 할 수있는 것은 아니지만 유감가 직접 :(

+0

우리는 MVN cmd를 라인과 모든 시간 빌드이 libs와 사용하지만, 일식을 시도하지 않은? 명령 줄에서 MVN의 작업을 수행합니다. – emmby

관련 문제