2011-05-11 6 views
14

빌드 도구로 Maven을 사용하는 Android 앱에서 작업하고 있습니다. 나는 정확하게 evertyhing을 설정할 수 있었다. (Maven 의존성은 apk 등으로 내보내진다.) 그러나 나는 미친 듯이 나를 몰고가는 하나의 남아있는 문제를 가지고있다.안드로이드 : javax 코어 클래스를 참조하는 의존성을 포함하는 재 패키징 오류/

내 POM 파일에 다음과 같이 정의 simpleframework's xml parser에 대한 종속성을 포함 할 :

<dependency> 
    <groupId>org.simpleframework</groupId> 
    <artifactId>simple-xml</artifactId> 
    <version>2.5.3</version> 
</dependency> 

나는이 프로젝트에 mvn install을 실행하면, 나는 (절단) 다음과 같은 오류 얻을 :

trouble processing "javax/xml/namespace/NameSpaceContext.class" ... 

나는 이러한 javax-classes를 참조하는 간단한 xml 파서의 오류 결과를 알고 있지만 솔루션을 아직 찾지 못했습니다 (--core-library 플래그를 설정하는 것은 쓸모가 없습니다).

나는 현재 maven-jarjar-pluging을 사용하여 종속성을 재 포장하려고하고 있지만 이것도 작동하지 않습니다.

누구든지 나를 도와 줄 수 있습니까? 많은, 미리 감사드립니다!

답변

28

이처럼 간단한 XML을 depedency를 정의 답장을 보내

<dependency> 
    <groupId>org.simpleframework</groupId> 
    <artifactId>simple-xml</artifactId> 
    <version>2.6.1</version> 
    <exclusions> 
     <!-- StAX is not available on Android --> 
     <exclusion> 
      <artifactId>stax</artifactId> 
      <groupId>stax</groupId> 
     </exclusion> 
     <exclusion> 
      <artifactId>stax-api</artifactId> 
      <groupId>stax</groupId> 
     </exclusion> 
     <!-- Provided by Android --> 
     <exclusion> 
      <artifactId>xpp3</artifactId> 
      <groupId>xpp3</groupId> 
     </exclusion> 
    </exclusions> 
</dependency> 
+0

감사합니다. 현재 프로젝트에 참여하고 있지는 않지만 앞으로의 사용을 염두에 두겠습니다. 그것이 작동한다면, 나는 돌아와서이 대답을 받아 들일 것입니다 :) – thomaux

+3

그것은 사람을 작동합니다!Marcin 대답을 받아 들일 수 :) 대답 –

+0

이 솔루션을 시도하지만 여전히 org.simpleframwork.xml.core.Persister 오류가 없습니다. –

2

나는 android-maven-plugin을 사용하고, POM의 플러그인의 <configuration> 태그에 <coreLibrary>true</coreLibrary>을 추가하면 저에게 도움이됩니다. 그러나 버그가 있습니다 : https://github.com/jayway/maven-android-plugin/pull/34, 사용중인 플러그인을 수정하기 위해 포함시켜야하는 버그입니다. 3.0까지 버그가 수정되지 않기 때문입니다. 다음은 2.9.0-SNAPSHOT을 사용하여 어떻게 작동하는지 보여줍니다.

  1. 는 HTTP에 pluginRepository 가리키는 추가 : // oss.sonatype.org/content/repositories/jayway-snapshots/은 2.9.0-SNAPSHOT는
  2. 갱신 플러그인 버전이 2.9.0-SNAPSHOT을 사용하여 얻을 수 및 < coreLibrary>를 추가 사실 </coreLibrary>
  3. 가 수정 얻을 pom.xml 파일에 : 자식 클론에게 https://github.com/kevinpotgieter/maven-android-plugin.git
  4. 제거 SRC/테스트/자바/COM : 그래서 테스트가 실패하지 않습니다
  5. MVN 패키지
  6. 복사하여 .m2에서 지역 받는다는 캐시를 덮어 쓰기 (당신은 당신이 덮어 쓰기됩니다 플러그인 저장소를 제거 할 때마다해야 할 수도 있습니다.) 수정은 2.9.0-SNAPSHOT에 들어간 후

단계 3-6이 필요하지 않을 것입니다.


업데이트 2010년 7월 : 2.9.0 베타-4는 2.9.0 베타 - 4 이상을 사용하는 경우 위의 해결 방법을 필요가 없습니다, 수정이 있습니다. 나는 잘 작동하는 2.9.0-beta-5를 테스트했다.