2015-07-29 5 views
2

enter image description hereпредупреждение в библиотеках во время подписания приложения

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

     dependencies { 
      classpath 'io.fabric.tools:gradle:1.+' 
     } 
    } 
    apply plugin: 'com.android.application' 
    apply plugin: 'io.fabric' 

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


    android { 
     compileSdkVersion 22 
     buildToolsVersion "22.0.1" 

     defaultConfig { 
      applicationId "com.example.hello" 
      minSdkVersion 9 
      targetSdkVersion 21 
      compileOptions { 
       sourceCompatibility JavaVersion.VERSION_1_7 
       targetCompatibility JavaVersion.VERSION_1_7 
      } 
     } 

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

    dependencies { 
     compile 'com.android.support:support-v4:22.2.0' 
     compile 'com.google.code.gson:gson:2.2.4' 
     compile 'com.android.support:appcompat-v7:22.2.0' 
     compile 'com.google.android.gms:play-services:+' 
     compile files('libs/bolts-android-1.2.0.jar') 
     compile files('libs/facebook.jar') 
     compile 'de.hdodenhof:circleimageview:1.2.1' 
     compile 'com.android.support:recyclerview-v7:21.0.+' 
     compile 'com.squareup.picasso:picasso:2.5.2' 
     compile 'com.jakewharton:butterknife:6.1.0' 
     compile 'com.android.support:cardview-v7:21.0.+' 
     compile 'com.github.bumptech.glide:glide:3.5.2' 
     compile 'com.android.support:support-v4:22.0.0' 
     compile('com.crashlytics.sdk.android:crashlytics:[email protected]') { 
      transitive = true; 
     } 
     compile 'com.nhaarman.listviewanimations:lib-core:[email protected]' 
     compile project(':gcmv') 
     compile 'com.android.support:design:22.2.0' 
    } 

Сегодня, когда я подписываю мое приложение с ProGuard это показывает слишком много предупреждения в моих библиотеках. поэтому из-за предупреждения я не могу сгенерировать подписанный файл apk. Итак, есть способ использовать «dontwarn» в моем файле gradle.

+0

Трудно сказать без предупреждений! –

+0

@BastienViatge выложил ошибку pic.check out – Umang

ответ

3

Кажется, что вы используете библиотеку picasso.

Попробуйте добавить эту строку в свой файл proguard. (proguard-rules.pro в вашем приложении)

-dontwarn com.squareup.okhttp.** 
+0

теперь после этого еще одно предупреждение, показывающее. Предупреждение: невозможно написать ресурс [.readme] (Duplicate zip entry [classes.jar: .readme]) – Umang

+0

Этот ответ решает проблему picasso с proguard, и это новое предупреждение не связано с picasso, лучше спросить об этом в другом вопрос и дать нам более подробную информацию –

2

Согласно ProGuard documentation:

Стандартный процесс сборки Android автоматически определяет на вход банки для вас. К сожалению, многие предварительно скомпилированные сторонние библиотеки относятся к другим библиотекам, которые фактически не используются и, следовательно, не являются . Это отлично работает в отладочных сборках, но в версиях релизов ProGuard ожидает всех библиотек, поэтому он может выполнить правильный статический анализ . Например, если ProGuard жалуется, что он не может найти класс java.awt , то некоторая библиотека, которую вы используете, имеет значение java.awt. Это немного теневое, так как Android вообще не имеет этого пакета , но если ваше приложение работает в любом случае, вы можете позволить ProGuard принять его с помощью «-dontwarn java.awt. **», например.

Как указывалось выше, если он хорошо работает в отладке, вы можете использовать -dontwarn как класс фильтра:

Указывает не предупреждать о неразрешенных ссылках и других важных проблем на всех. Дополнительный фильтр является регулярным выражением; ProGuard не печатает предупреждения о классах с соответствующими именами. Игнорирование предупреждений может быть опасным. Например, если нереализованные классы или члены класса действительно необходимы для обработки, обработанный код не будет функционировать должным образом.

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