2013-11-22 6 views
3

내 프로젝트에서 android-support-v4-r19 (최종 버전)를 사용하고 있으며 다른 라이브러리 (jar)를 사용해야하지만이 라이브러리는 android-support-v4를 사용합니다 내 응용 프로그램을 실행하려고 할 때 이전 버전)뿐만 아니라, 그래서 나는이 오류가있어 :동일한 프로젝트의 여러 android-support-v4 버전

Unable to execute dex: Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl; 

Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl; 

나는 안드로이드 지원-V4 라이브러리의 두 가지 버전이 때문입니다 생각을하지만 난 Android 기기, 제거 할 수 없습니다 지원 - v4 (이전 버전)에서 jar 파일을 가지고 있기 때문에 android-support-v4-r19를 제거 할 수 없습니다. 필요하고 존재하지 않는 클래스가 있기 때문에 내 프로젝트에서 제거 할 수 없습니다.).

어떻게해야합니까?

+0

'android-support-v4' 코드가 실제로 이전 jar 파일에 포함되었다고 말하고 있습니까? 그렇다면 버그 인 것 같습니다. – chrylis

+0

다시 확인하십시오. Android 지원 라이브러리는 항아리에 포장 할 수 없습니다. –

+0

jar에 포장 라이브러리가 있습니다. 한 번에 두 개를 사용할 수 없습니다. –

답변

0

빌드 경로를 구성하십시오. v4 라이브러리를 제거하십시오. 해당 위치에서 삭제할 수없는 경우 프로젝트 위치로 이동하여 삭제하십시오. 두 개의 지원 라이브러리를 사용할 수 없습니다.

왜 v4 라이브러리를 제거 할 수 없습니까? Android 개인 라이브러리 폴더에 있습니다. 그것이 개인적인 도서관 폴더 전부를 제거하는 경우에.

또는 내가 말한 간단한 방법 - 프로젝트 위치로 이동하고 v4 라이브러리를 삭제합니다 (프로젝트의 빌드 경로에서 v4 라이브러리의 위치를 ​​찾을 수 있습니다.) v4 라이브러리를 찾습니다. 위치도 있어야합니다. 이

0

I cannot remove android-support-v4 (older version) from this library because I have the jar file

나는 "다른 라이브러리"에서 JAR 파일이 android-support-v4에서 클래스가 포함되어 있음을 의미하는 것으로이 해석하고있다.이 경우, 당신은 아마 "다른 라이브러리"를 사용하여 재고하고 싶다. 개인적으로, 나는 그것을 만지지 것 3 미터 길이의 막대기를 가지고 있습니다.

그러나 ope를 사용하여 복구 할 수 있습니다 JAR 파일을 ZIP 아카이브로 정리하고 표시되는 모든 android.* 클래스를 제거하십시오. 그런 다음 JAR는 프로젝트의 자체 복사본 android-support-v4.jar의 클래스를 사용하여 마감합니다.

이러한 변화는 "다른 라이브러리"깰 것이라고 할 수있다 :

  • android.* 클래스의 해당 버전

      가 수정 된을하고 "다른 라이브러리 개발자가 다른 패키지로 리팩토링, 또는

      하지 않았다 안드로이드 지원 패키지
    • 일반 코드를 변경하기 만하면 "다른 라이브러리"의 소스 코드를 수정하거나 어떤 경우에는 "다른 라이브러리", 휴식, 또는 문제에

  • +0

    예, 라이브러리는 JAR 파일이며 이전 버전의 android-support-v4를 포함합니다. JAR 파일을 열고 Android 참고 사항을 삭제했습니다. 그것을 컴파일 할 수 있지만 응용 프로그램을 실행할 때 충돌이 발생합니다. "다른 라이브러리"에 이미 정의 된 클래스와 관련된 NoClassDefFoundError가 있습니다. – Danielle

    +0

    @Danielle : 그런 다음 JAR 파일을 편집하여 해당 클래스를 제거하십시오. – CommonsWare

    +0

    내 편집 된 주석을 확인하십시오. – Danielle

    관련 문제