2016-09-20 1 views
1

나는 지난 2 일 동안 고생했습니다. 내 샘플 앱 중 하나에서 내 자신의 aar 파일을 가져 와서 사용하고 싶습니다. 나는 aar 내부의 클래스에 액세스 할 수없고 java.lang.NoClassDefFoundError 오류가 발생합니다.aar에서 수업에 액세스 할 수 없습니다.

1)로 이동하여 AAR을 가져 오기 : File -> New-> New Module -> Import .JAR/.AAR 을 다음 Gradle을에 compile project(':Name-Of-Your-Project')을 추가하는 지금이 일반적인 문제, 나는 각각의 모든 관련 질문을 읽은 후, 지금까지 아래 시도하기 때문에

.

2) 메이븐 플러그인을 사용하고 gradle install을 사용하여 로컬 메이븐 레포에 aar를 푸시 한 다음 내 그라디언트의 로컬 레포에 reffering하십시오.

compile ('com.rsa.mobile.sdk.android:authsdk:3.6.0-SNAPSHOT:[email protected]'){ 
     // transitive=true 
    } 

참고 :

UNEXPECTED TOP-LEVEL EXCEPTION: 
    com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536 

3) 재건을하고 답변을 많이 제안 프로젝트를 청소 : 나는 = true를 이행 주석을 제거하면 응용 프로그램을 설치하는 동안, 나는 아래의 예외를 얻을. 운동 didnt는

4) 단 한 가지가 REPO에

flatDir { 
     dirs 'libs' 
     } 

를 추가 한 후, compile(name:'Name-Of-Your-Project', ext:'aar')처럼 참고로하는 것에 다음 디렉토리에 AAR을 넣고 옆에 있었다. 나는 위의 1 번에서 언급 한 바와 같이 정확한 포인트가 중요하지만 4 번 포인트가 중요하다고 생각하지 않는다.

누군가 도와 드릴 수 있습니까? 그것은 사소한 문제처럼 보이지만 나는 이미 약 2 일을 낭비했습니다.

+0

클래스가 난독 화 되었습니까? –

+0

아니요, 다른 샘플 앱을 사용하기 전에 동일한 aar를 사용했습니다. 이 문제에 직면 한 것은 이번이 처음입니다. – Sid

+0

예외에 따라 메소드 수는 64K 이상입니다. 그래서'multidex'를 사용해야합니다. [Here] (https://developer.android.com/studio/build/multidex.html)가 자세한 내용입니다. –

답변

0

예외를 살펴보면 아래 코드가 문제를 해결할 수 있습니다. 응용 프로그램 gradle에 추가하십시오.

android { 
    defaultConfig { 
     // Enabling multidex support. 
     multiDexEnabled true 
    } 
dexOptions { 
     // FOR GC overhead 
      incremental true 
      javaMaxHeapSize "4g" 
    } 
} 
+0

이렇게하면 java.lang.NoClassDefFoundError : com.android.volley.toolbox.Volley 예외가 발생합니다. 이것은 전에 오지 않았다. 나는 이미 'com.mcxiaoke.volley : library-aar : 1.0.0'을 내 gradile에 컴파일했다. – Sid

+0

[여기] (http://stackoverflow.com/questions/17002636/android-studio-volley-noclassdeffound)를 확인하십시오. 도움이 될 수 있습니다. –

+0

이미 그걸 시험해 봤는데 운이 없었어. – Sid