Выполнение не удалось при использовании proguard - PullRequest
0 голосов
/ 12 декабря 2018

Я использую Android Studio v.3.

Это мой файл сборки:

...
    buildTypes {
        debug {
            minifyEnabled true
            // Uses new built-in shrinker http://tools.android.com/tech-docs/new-build-system/built-in-shrinker
            useProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            testProguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguardTest-rules.pro'
        }

        release {
            minifyEnabled true
            useProguard true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            testProguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguardTest-rules.pro'
        }
    }

, но когда я пытаюсь сделать релизную сборку, я получаю следующую ошибку:

org.gradle.execution.MultipleBuildFailures: Сборка завершена с 1 ошибкой.по адресу org.gradle.initialization.DefaultGradleLauncher $ ExecuteTasks.run (DefaultGradleLauncher.java:370) по адресу org.gradle.internal.operations.DefaultBuildOperationExecutor $ RunnableBuildOperationWorker.execute (DefaultBuildOperationExo.BeoDB)$ RunnableBuildOperationWorker.execute (DefaultBuildOperationExecutor.java:293) по адресу org.gradle.internal.operations.DefaultBuildOperationExecutor.execute (DefaultBuildOperationExecutor.java:175) по адресу org.gradle.internal.oilds.Recec.org.gradle.internal.operations.DelegatingBuildOperationExecutor.run (DelegatingBuildOperationExecutor.java:31) в org.gradle.initialization.DefaultGradleLauncher.runTasks (DefaultGradleLauncher.java:231) в org.gradleefra158) в org.gradle.initialization.DefaultGradleLauncher.executeTasks (DefaultGradleLauncher.java:133) at в com.android.builder.tasks.Job.runTask (Job.java:47) в com.android.build.gradle.tasks.SimpleWorkQueue $ EmptyThreadContext.runTask (SimpleWorkQueue.java:41) в com.android.builder.tasks.WorkQueue.run (WorkQueue.java:282) ... еще 1

В чем проблема?

1 Ответ

0 голосов
/ 12 декабря 2018
 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

Следующая строка в файле build.gradle модуля вашего приложения указывает, что скрипт proguard должен применяться к вашей сборке выпуска.Он содержит два файла:

  1. Создайте proguard-rules.pro вручную. Вам необходимо создать этот файл в корневой папке вашего приложения.
  2. proguard-rules.pro содержит специфичный для вашего приложения сценарий proguard,Если в вашем файле должна быть вся соответствующая вашему приложению программа, то

например, если вы используете библиотеку jjwt, вы должны добавить эту строку в файл proguard-rules.pro:

-keepattributes InnerClasses

-keep class io.jsonwebtoken.** { *; }
-keepnames class io.jsonwebtoken.* { *; }
-keepnames interface io.jsonwebtoken.* { *; }

-keep class org.bouncycastle.** { *; }
-keepnames class org.bouncycastle.** { *; }
-dontwarn org.bouncycastle.**
...