java.lang.NoClassDefFoundError:retrofit2.Retrofit$Builder 또는retrofit2.BuiltInConverters

java.lang.NoClassDefFoundError:retrofit2.Retrofit$Builder 오류 솔루션 또는 java.lang.NoClassDefFoundError: android studio의 Retrofit2.BuiltInConverters 오류 솔루션

이 문제는 Android 5.0 이상에서는 발생하지 않지만 Android 4.0-4.4에서는 발생합니다.

 문제의 원인은 다음과 같습니다. 

프로젝트 규모가 상대적으로 크고 일부 타사 패키지를 참조하고 있어서 Dex 파일의 메소드 개수가 한도를 초과하여 컴파일이 불가능하므로 모듈의 build.gradle에서 multiDexEnabled를 true로 설정하여 해당 메시지가 표시되지 않도록 했습니다. 메소드 수가 한도를 초과했습니다. 그러나 Android 시스템 4.0+에서는 여전히 컴파일 및 실행이 불가능하며 위의 오류가 보고됩니다.

처음에는 false로 설정하거나 이 줄을 직접 삭제하려고 했는데 4.0+ 휴대폰에서 여전히 다음과 같은 문제가 발생합니다.

해결책:

1. 모듈의 build.gradle에서 multiDexEnabled를 true로 설정합니다.

2. 모듈의 build.gradle에 추가

compile 'com.android.support:multidex:1.0.2'   或者手动下载该jar包放在libs中.

3. 애플리케이션의 Application 항목을 수정하고 MultiDexApplication을 상속하도록 한 다음 attachmentBaseContext 메서드를 다시 작성합니다.

public class myApplication extends MultiDexApplication {
     }

4. MultiDexApplication을 상속할 수 없는 경우 응용 프로그램에서 attachmentBaseContext() 메서드를 재정의하고 MultiDex.install(this)을 추가할 수도 있습니다.

5. 애플리케이션에 사용자 정의 Application 메서드가 없는 경우 AndroidManifest.xml 매니페스트 파일에서 다음 명령문을 직접 만들 수 있습니다.

<application
    ......
    android:name="android.support.multidex.MultiDexApplication">

    ......

</application>

 

그러면 문제가 해결됩니다.

Supongo que te gusta

Origin blog.csdn.net/zhao8856234/article/details/105999609
Recomendado
Clasificación