2

Android 테스트가 연결된 gradle 프로젝트에 라이브러리 모듈이 있지만 테스트 APK가 너무 많은 메소드를 참조하므로 다중 가닥을 사용해야하거나 ProGuard를 사용해야합니다.Multidex Andoird 라이브러리 모듈

연결된 Android 테스트의 응용 프로그램에 대해 multidex 또는 ProGuard를 활성화하는 방법이 있습니까?

그것은 도서관에 직접 ProGuard를 수 있도록 이해가되지 않습니다,하지만 단지 androidTest 구성, 즉 잘 일하는 것이 그것을 가능하게하는 방법이 있는지.

우리는 응용 프로그램 모듈에 대해 ProGuard를 사용할 수 있으므로이 라이브러리 모듈에 안전하게 의존 할 수 있으며 앱의 APK를 성공적으로 빌드 할 수 있습니다.

Multidex 지원 라이브러리 사용에 대한 정보 만 찾을 수 있기 때문에이 질문에 대한 해결책을 찾기가 어려웠습니다. 일반 응용 프로그램에서이 기능을 활성화하는 방법을 알고 있습니다.

+0

내가 알고있는 한, Proguard는 코드 난독 화에만 사용됩니다. Proguard와 함께 여기에 멀티 이싱과 관련이 없습니다. –

+0

@ReazMurshed ProGuard는 코드를 난독 화시킬 수 있지만 사용되지 않는 메소드와 클래스도 제거 할 수 있습니다. https://developer.android.com/studio/build/shrink-code.html –

답변

1

연결된 안드로이드 테스트의 응용 프로그램에만 멀티 덱스 또는 ProGuard를 사용할 수있는 방법이 있습니까?

예, 전용 테스트 빌드 유형을 사용하여 테스트 할 때 ProGuard를 활성화 할 수 있습니다. 기본값은 debug입니다. 다음 예제에서는 전용 테스트 빌드 유형의 이름이 minifiedTest입니다.

android { 

    defaultConfig { 

     /* Your configs here. */ 

     // Specify the name of the dedicated test build type. 
     testBuildType 'minifiedTest' 
    } 

    buildTypes { 
     debug { 
      // Your debug configurations. 
     } 

     release { 
      // Your release configurations. 
     } 

     minifiedTest { 
      // Use this to get the initial configurations from another build type. 
      // Some of them will be overridden from the configurations specified in this build type. 
      // You can avoid to use this or you can get them from your release build type for example. 
      initWith(debug) 
      // Enable proguard. 
      minifyEnabled true 
      // Specify the proguard file. 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 
+0

제안에 감사드립니다. 라이브러리가 다른 라이브러리 프로젝트에 의존하는 경우 불행하게도이 접근법은 새로운 버전의 gradle (4.1 이상)에서 몇 가지 문제를 발생시킵니다. 라이브러리 모듈 용 multidex를 사용하도록 설정했습니다. –

관련 문제