Подтвердить что ты не робот

Android Studio & ProGuard: не удается разрешить символ getDefaultProguardFile?

IDE: Android Studio 1.1.0

Тема: ProGuard

Проблема: файлы или инструменты ProGuard, не распознанные Android Studio, getDefaultProguardFile не могут быть разрешены и в приложении нет файлов proguard-android.txt и proguard-rules.txt, см. изображение ниже: ( от build.gradle)

build.gradle screenshot

Как исправить это и обеспечить защиту ProGuard для моего приложения?

4b9b3361

Ответ 1

Попробуйте изменить -

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

Ответ 2

У меня была такая же проблема, как показано здесь:

введите описание изображения здесь

Сообщение об ошибке показывает, что файл не найден и поэтому не читается. Тем не менее, я зашел в папку sdk/tools/proguard, чтобы найти файл, а наверху добавлен оператор, чтобы проверить, действительно ли файл был прочитан. Я поставил наверху: "Это приведет к его краху?"

введите описание изображения здесь

Как вы можете видеть из этой ошибки, файл действительно был найден во время процесса сборки, и выражение, которое я добавил, разбило его. Таким образом, кажется, что ошибка "не может разрешить символ" дает ложный результат.

Ответ 3

У меня действительно была такая же проблема. Итак, вот что заставило мой проект работать:

release {
    minifyEnabled true
    proguardFile 'proguard-rules.pro'
}

Протестировано этим кодом:

 Log.d(TAG, "TEST!");
 Log.i(TAG, "INFO!");
 Log.e(TAG, "ERROR!");

В proguard.pro я разместил этот фрагмент (который удаляет все Log.d -Statements в байтовом коде)

-assumenosideeffects class android.util.Log {
    public static int d(...);
}

И кот говорит:

MainAct﹕ INFO!
MainAct﹕ ERROR!

- > именно то, что я пытался достичь:)

PS: Предполагается, что у вас есть файл proguard.pro в папке модуля (aka 'app.).

Ответ 4

Try:

proguardFiles.add(file('proguard-android.txt')) proguardFiles.add(file('proguard-rules.txt'))

Эта структура работает в плагине gradle -experimental.

Ответ 5

Я исправил проблему с Android Studio, не признав метод, используя двойные кавычки вместо сингла. Ниже приводится то, что я использовал:

    release{
        shrinkResources true
        minifyEnabled true
        proguardFiles getDefaultProguardFile("proguard-android.txt"),
                "proguard-rules.pro"
    }

Ответ 6

попробуйте это,

{
  minifyEnabled false
  // proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
  proguardFiles 'proguard-rules.pro'
}

Ответ 7

В моем случае:

buildTypes {
    release {
        runProguard false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

замените runProguard false на minifyEnabled false.