2013-05-18 2 views
0

Google 드라이브가 포함 된 프로젝트가 있는데 완벽하게 작동합니다. 그런 다음 Android SDK 및 Eclipse ADT 플러그인 업그레이드를 수행했으며 Google Drivie는 더 이상 작동하지 않으며 이유를 이해할 수 없습니다.NoClassDefFoundErrror with Google Drive

내 프로젝트와 Google Play 서비스에 드라이브 API를 추가하고 내보낼 체크 박스를 선택했습니다. 나는 깨끗한 빌드를 했어, 내 애플 리케이션의 bin 디렉토리를 삭제했습니다, 이클립스를 다시 시작하고, 깨끗한 빌드를 다시했지만, Google 애플 리케이션의 섹션을 실행하자마자 구글 계정 선택기를 보여줘야한다. 다음은

는 상관없이 그렇게 어떤 도움을 크게 감상 할 수있는 차이를 보이지 않는다 내가 무엇을 시도 로그 캣

05-18 17:17:09.089: E/AndroidRuntime(16747): FATAL EXCEPTION: main 
05-18 17:17:09.089: E/AndroidRuntime(16747): java.lang.NoClassDefFoundError: com.google.android.gms.common.AccountPicker 
05-18 17:17:09.089: E/AndroidRuntime(16747): at com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential.newChooseAccountIntent(GoogleAccountCredential.java:171) 

반환하지 않는 오류입니다.

업데이트 Raghunandan이 제안한대로 Android 개인 라이브러리의 내보내기 옵션을 시도해 보았습니다. 대부분의 앱이 프로젝트에 포함 된 Dropbox API와 같이 작동하지만 코드의 Google 드라이브 부분이 NoClassDefFoundError와 함께 실행될 때 오류가 발생합니다.

나는 주문 & 내보내기 탭에서 드라이브 API를 체크하면 그때 Dex Loader] Unable to execute dex: Multiple dex files define Lcom/google/api/client/googleapis/extensions/android/accounts/GoogleAccountManag‌​er;

답변

2

클래스 com.google.api.client.googleapis.extensions.android.accounts.GoogleAccountManag‌er을 정의하는 여러 라이브러리를 가져 오는 것 같습니다. Android 개인 라이브러리 아래의 패키지 관리자를 살펴보고 .jar 파일을 열어보십시오. 이 클래스는 적어도 두 개에서 찾을 수 있습니다 (그 중 하나는 google-api-client-android-1.13.2-beta.jar과 같을 수 있습니다).

빌드 경로에서 jar 파일 중 하나를 제외하십시오. 오류가 없으면 작업이 완료된 것입니다. 오류가 있으면 다른 jar 파일을 제외 시키십시오. 오류가 계속되면 jar로 zip을 열고 수동으로 GoogleAccountManager.class 파일을 삭제 해보세요.

+0

감사합니다. 그 나이에 나를 도청했다. 내가하지 않은 또 다른 조치가있었습니다. 빌드 경로에 Google Play 서비스를 포함시키고 내보내었지만 프로젝트의 Android 섹션에 라이브러리로 추가하지 않았습니다. 당신의 도움을 주셔서 감사합니다. 그것도 며칠 동안 나를 괴롭 히고있다 – Boardy

+1

@ferini 나는 [여기] (http://stackoverflow.com/questions/23510953/java-lang-noclassdeffounderror-com-google-api-services-drive-drive) 같은 문제가 있었다. 그리고 ** Drive 클래스는 2 병 안에 있습니다 **. 하나는'googl-play-services.jar'에 있고 다른 하나는'google-api-services-drive-v2-rev123-1.18.0-rc.jar'에 있습니다.하지만 왜 올바른 import 경로를 제공 한 후에도 이런 일이 발생합니까? –

1

위해 프로젝트려고 시도 오류가 - 당신의 프로젝트 및에 대한 점검> 주문 & 수출 및 안드로이드 개인 라이브러리를 확인 -> 등록 정보를 당신이 사용하고있는 다른 모든 도서관 프로젝트.

+0

감사합니다.하지만 다음 오류가 발생합니다. "Dex Loader"dex를 실행할 수 없습니다 : 여러 dex 파일에서 Lcom/google/api/client/googleapis/extensions/android/accounts/GoogleAccountManager;[2013-05-18 21:29:11 - AndroidPasswordManager] Dalvik 형식으로 변환하지 못했습니다. dex를 실행할 수 없습니다 : 여러 개의 dex 파일이 Lcom/google/api/client/googleapis/extensions/android/accounts/GoogleAccountManager를 정의합니다. – Boardy

+0

Google Play 서비스 라이브러리를 참조한 적이 있습니까? 또한 시도하십시오 Android SDK 및 ADT를 업데이트 한 후 Android 빌드 도구가 설치되어 있는지 확인하십시오. Andorid Build Tools가 설치되어 있는지 안드로이드 SDK 관리자에게 문의하십시오. 설치되어 있지 않은 경우 설치하십시오. – Raghunandan

+0

예, Google Play 서비스가 프로젝트에서 참조됩니다. SDK 관리자가 최신 상태이고 Android SDK 빌드 도구가 설치되어 있는지 확인했습니다 – Boardy

0

나는 동일한 문제가있어 지금 해결했습니다.

먼저 Dredit을 다운로드하려고합니다. 정상적으로 작동합니다. 그래서 속성 (속성 -> 자바 빌드 경로 -> 라이브러리)에서 Google API를 제거합니다. Dredit에서 libs를 복사하십시오. 맞춰봐? 문제는 여전히 존재합니다.

그래서 전체 프로젝트를 다시 빌드하려면 다음 단계를 수행하십시오.이 문제가 해결되었습니다. 그것이 당신을 도울 수 있기를 바랍니다.

  1. googe api 및 모든 관련 라이브러리를 제거하십시오.
  2. 닫기이 프로젝트
  3. 열기
  4. 다시 프로젝트를 다시 포함 프로젝트 폴더를 제거하고 숨겨진 폴더 (로 시작합니다.) 생성 된 폴더에 있습니다.그리고 libs 형식을 복사하십시오. Dredit