ProGuard не может удалить вызовы функции Log.i

Я использую Log.ia много в моей программе Android, и я хочу удалить их все в сборке релизов.

Я сделал так:

  1. Добавить proguard-rules.pro:

buildTypes {release {minifyEnabled true proguardFiles getDefaultProguardFile ('proguard-android.txt'), 'proguard-rules.pro'}} "data-babel =" false ">
minifyEnabled

Вы можете видеть, trueчто установлен, trueи я вижу, что размер файла .apk уменьшается с 1,9 М до 1,2 М.

  1. Добавить 'proguard-rules.pro'

Я добавил 'proguard-rules.pro'as:

-assumenosideeffects class android.util.Log {
        public static int v(...);
        public static int i(...);
    }
-dontwarn okio.**

Я уверен, что он используется, потому что было предостережение о предупреждениях okio * до того, как предупреждения были после того, как я добавил -dontwarn.

Чтобы убедиться, что журналы исчезли, я запустил приложение на устройстве, которое подключено к ПК с запущенной версией Android Studio. Это не в режиме отладки, но я просто использую его Android Monitor -> logcat, чтобы узнать, есть ли какой-либо выход журнала.

Странно, что я все еще вижу выход из моего приложения. как

10-14 18:53:01.436 3173-3173/? I/b: send: 03 ed 00 02 55 

Который является результатом моего кода

Log.i(TAG, "send: "+ toHex(req));

Из ?журнала я предполагаю, что ProGuard работал (в противном случае это должно быть мое полное имя приложения). Но почему я все еще вижу журналы logcat? Какой шаг я пропустил?

android,android-studio,proguard,release,logcat,

1

Ответов: 2


1 принят

использовать proguard-android-optimize.txtвместоproguard-android.txt


1

Вам нужно использовать оптимизированную конфигурацию proguard, которая позволяет proguard оптимизировать ваш код.

 proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
андроид, андроид-студия, ProGuard, выпуск LogCat,