2016-10-05 7 views
1

У меня есть проект с двумя модулями. Он существует конфигурацию по умолчанию build.gradle:Добавить другой файл proguard для отладки

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

И я хочу, чтобы добавить другую конфигурацию (Proguard и Минимизация) для отладки компиляции следующим образом:

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

Когда я ставлю этот код в моем проекта, он не компилируется. Журнал показывает ошибку сообщения для каждой ссылки на другой модуль:

Error:(37, 42) error: package com.example does not exist 

Полная конфигурация двухъядерных модулей.

Модуль приложения:

buildscript { 
    repositories { 
     maven { url 'https://maven.fabric.io/public' } 
    } 

    dependencies { 
     ... 
    } 
} 

apply plugin: 'com.android.application' 
... 

android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.3" 

    defaultConfig { 
     ... 
     minSdkVersion 16 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.3" 
    } 
    buildTypes { 
     release { 
      minifyEnabled true 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
     debug { 
      minifyEnabled false 
     } 
    } 
} 

repositories { 
    maven { 
     ... 
    } 
} 

repositories{ 
    maven { 
     url 'http://dl.bintray.com/amulyakhare/maven' 
    } 
} 

... 

dependencies { 
    ... 
} 

Модуль библиотеки:

apply plugin: 'com.android.library' 

android { 
    compileSdkVersion 24 
    buildToolsVersion "24.0.1" 

    defaultConfig { 
     ... 
    } 
    buildTypes { 
     release { 
      minifyEnabled true 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
     debug { 
      minifyEnabled false 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    ... 
} 
+0

Вы можете проверить эту ссылку. Это может помочь вам. http://stackoverflow.com/questions/35657886/how-can-i-use-different-proguard-files-in-different-flavors-or-for-different-bui –

ответ

1

Я хотел бы попробовать следующее:

buildTypes { 
      release { 
       minifyEnabled true 
       proguardFiles getDefaultProguardFile('proguard-project.txt'), 'proguard-rules.pro' 

      } 
      debug { 
       minifyEnabled true 
       proguardFiles getDefaultProguardFile('proguard-project.txt'), 'proguard-rules-debug.pro' 
      } 
     } 

В качестве альтернативы вы пытались положить файлы правила в сборку -типы? Вы можете поместить файл proguard-rules.pro в папку build-types/release и файл proguard-rules-debug.pro в папку build-types/debug.

+0

proguard не будет применяться, если вы установите 'minifyEnabled false' – parohy

+0

Да, вы правы, опечатка, исправлена. –

 Смежные вопросы

  • Нет связанных вопросов^_^