>

proguard로 일부 코드 최적화를 시도했지만 지금까지는 성공하지 못했습니다. SO에 대한 비슷한 질문에 대한 모든 대답은 나에게 도움이되지 않았으며 Google이 제공 한 보호에 관한 문서도 도움이되지 않습니다.

내가 한 일 :

앱 레벨의 build.gradle에 다음이 있습니다.

buildTypes {
    debug {
        testCoverageEnabled = true
        debuggable true
    }
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
    debuggable.initWith(buildTypes.debug)
    debuggable {
        testCoverageEnabled = false
        debuggable true
    }
}

proguard-rules.pro에서 다음을 추가했습니다 :

-assumenosideeffects class android.util.Log {
    public static boolean isLoggable(java.lang.String, int);
    public static int v(...);
    public static int i(...);
    public static int w(...);
    public static int d(...);
    public static int e(...);
}

나는 proguard-android-optimize.txt 에서 아무것도 바꾸지 않았다  파일.

이제 서명 된 릴리스 apk (Android Studio 3.0)를 빌드 할 때 디 컴파일 된 결과는 코드에서 아무것도 변경되지 않았으며 proguard visible (app/build/intermediates-folder가 아닌 gradle 콘솔). 나는 아주 간단한 것을 놓치고 있다고 확신하지만 그것을 알아낼 수는 없습니다.

proguard를 실행하기 위해 구성해야 할 다른 것이 있습니까?

  • 답변 # 1

    알겠습니다. "전원을 껐다 켜려고 했습니까?"를 기억하지 못하는 피해자 인 것 같습니다.

    오늘 나는 기계를 시작하고 Android Studio를 열었고 모든 것이 매력처럼 작동했습니다. Android Studio, Gradle, ProGuard에 캐시 된 것들이있는 것처럼 보이므로 이전의 잘못된 시도는 아무것도 작동하지 않는 모든 것을 불안정한 상태로 두었습니다.

    따라서 위에서 설명한대로 정확한 구성으로 비슷한 설정 (Gradle 4.1이 설치된 Android Studio 3.0)을 가지고 있고 작동하지 않는 경우

    와이즈 비즈

    :-)

    (그리고 어제 성공한 것이 아니기 때문에 Android Studio만이 아닙니다.)

    "Try to turn it off and on again".

  • 이전 android - 스피너를 선택한 경우 TextInputLayout에서 포커스 제거
  • 다음 javascript - crypto-js를 통한 base64 인코더