2012-12-19 3 views
2

Google 캘린더 v3 API를 사용하는 Android 프로젝트가 있습니다.Google API Java 클라이언트 라이브러리 및 캘린더 API Java 라이브러리를 Maven 종속성에 추가

Google 캘린더에서 검색어를 수행하기 위해 Google API ClientCalendar API Java 라이브러리를 사용하고 있습니다.

maven 의존성 설정에 문제가 있습니다. 그 라이브러리를 설명서의 ID를 사용하여 pom.xml에 추가했지만 그 중 일부는 구식이므로 pom.xml

google-api-client, google-api-client에 <scope>provided</scope>을 입력해야했습니다. http-client-jackson 및 google-http-client-android 라이브러리가 필요합니다.

Failed to execute goal com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.4.1:dex (default-dex) 

이제이 pom.xml은 .apk를 성공적으로 생성하고 장치에 설치합니다. 그러나 제공된 라이브러리를 사용하여 Calendar API에 대한 쿼리를 만들려고하면 응용 프로그램이 실패하여 일부 클래스를 찾을 수 없다는 메시지가 나타납니다.

12-19 17:32:17.247: E/dalvikvm(15119): Could not find class 'com.google.api.services.calendar.model.TimePeriod', referenced from method 

Eclipse에서 응용 프로그램을 빌드 할 때 (모든 .jars가/libs 폴더에 있음) 모든 것이 정상입니다.

그래서 Maven 스크립트에 의존성을 추가하는 올바른 방법이 있는지 궁금합니다. Google에는 작동하지 않는 링크 나 샘플이 포함 된 오래된 문서가 많이 있습니다. 그렇지 않으면 Google 도서관을 없애고 스스로 캘린더 API 쿼리를 작성해야합니다.

도움이 될 것입니다.

답변 : 그것은 모두 javax 패키지의 클래스를 가지고 있기 때문에

xpp3.jar이 문제의 원인이되었다. 내가 수동으로 모든 Google 라이브러리에서 제외했다 :

  <exclusion> 
        <artifactId>xpp3</artifactId> 
        <groupId>xpp3</groupId> 
      </exclusion> 
+0

따라서 이러한 API를 응용 프로그램에 추가하려고하면 빌드 프로세스가 실패합니다 (보다 구체적인 오류를 제공하십시오). 이러한 라이브러리를 app에 추가하지 않으면 런타임이 실패합니다.포함되어야하는 항목과 Android 런타임에서 실제로 제공 될 내용을 파악해야 할 필요가있는 것 같습니다. 정확히 –

+0

. 과 함께 제공했으며, 이제는 maven이 .apk를 빌드하지만 런타임에 Dalvik이 일부 클래스를 찾을 수 없습니다. 질문을 오류로 업데이트했습니다. – atermenji

답변

1

아르 템,

나는 그것을 해결하는 방법을 다음 오류 및 조언을 참조하십시오

[INFO] trouble processing "javax/xml/namespace/QName.class": 
[INFO] 
[INFO] Ill-advised or mistaken usage of a core class (java.* or javax.*) 
[INFO] when not building a core library. 

이 자바 코어 파일입니다. 어떤 의존성이 (mvn dependency:tree)와 함께 사용되는지 알아 내려고 시도하십시오.

+0

도움을 주셔서 감사합니다. Google 캘린더 API 라이브러리에서 xpp3을 제외하는 것을 잊었 기 때문에 오류가 표시되었습니다. – atermenji

1

당신은이 라이브러리부터 제공 범위를 사용할 수 없습니다 안드로이드 스택의 일부가 아니므로 당신의 APK에 포함 할 필요가있다. 기본 범위로 포함시킬 때 발생하는 실패는 무엇입니까?

업데이트 :

javax 네임 스페이스 프로젝트를 포함하려는 것으로 의심됩니다.

mvn dependency:tree 

와 원인 종속성이 그게 뭔지 알아되고 시도하고 잠재적으로 하나 또는 다른 네임 스페이스에 그늘을 (같은 클래스가 이미 안드로이드에 있다고 가정)를 제외 (그리고 사용하기 위해 라이브러리를 업데이트 그것은) 또는 더 적합 라이브러리를 찾을 ...

+0

Google Api 클라이언트에서 제공된 스코프를 제거 할 때 devel 목표를 수행하려고 할 때 빌드가 실패합니다. 다음은 -e 및 -X 플래그가있는 dex 단계의 원시 출력입니다. http://pastebin.com/8WxDFQbL – atermenji

+0

Google 달력 API 라이브러리에서 xpp3을 제외하는 것을 잊어 도움 주셔서 감사합니다. – atermenji