Как написать правила для proguard?

369
31 августа 2017, 18:04

Мне нужно было сделать имплементация proguard в проекте как было до

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

после того как я поменял

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

Вот мой proguard-ruler.pro файл https://ideone.com/ccPvPv

# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in /Users/Shahar/Library/Android/sdk/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the proguardFiles
# directive in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html
# Add any project specific keep options here:
# If your project uses WebView with JS, uncomment the following
 #and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}
# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
#If you not sure about proguard process so uncomment next line
#-dontobfuscate
# view res/layout/design_layout_snackbar_include.xml #generated:18
#-keep class android.support.design.internal.SnackbarContentLayout { <init>
(...); }
# view res/layout/activity_main.xml #generated:11
#-keep class android.support.design.widget.AppBarLayout { <init>(...); }
# view AndroidManifest.xml #generated:19
#-keep class ru.jollydroid.athdemo.MainActivity { <init>(...); }
#
# Proguard configuration for Jackson 2.x (fasterxml package instead of 
codehaus  package)
#-keep class com.fasterxml.jackson.databind.ObjectMapper {
#    public <methods>;
#    protected <methods>;
#}
#-keep class com.fasterxml.jackson.databind.ObjectWriter {
#    public ** writeValueAsString(**);
#}
#-keepnames class com.fasterxml.jackson.** { *; }

#-----------------
#-keepnames com.fasterxml.jackson.databind.** { *; }
#
#-keepnames com.squareup.okhttp.** { *; }
#
#-keepnames cryptix.util.test.** { *; }
#
#-keepnames jp.wasabeef.recyclerview.animators.** { *; }
#
#-keepnames cryptix.util.gui.** { *; } 
#
#-keepnames ui.activities.** { *; }
#
#-keepnames ui.adapters.** { *; } 
#
#-keepnames ui.fragments.** { *; }
#
#-keepnames webServices.controllers.** { *; }
#-------------------------
#Was worked
#-----------------
#-dontwarn com.fasterxml.jackson.databind.**
#
#-dontwarn com.squareup.okhttp.**
#
#-dontwarn cryptix.util.test.**
#
#-dontwarn jp.wasabeef.recyclerview.animators.**
#
#-dontwarn cryptix.util.gui.**
#
# -dontwarn ui.activities.**
#
#-dontwarn ui.adapters.**
#
#-dontwarn ui.fragments.**
#
#-dontwarn webServices.controllers.**
#-------------------------
#-dontwarn java.awt.**
#-dontwarn java.beans.Beans
#-dontwarn javax.security.**
#-keep class javamail.** {*;}
#-keep class javax.mail.** {*;}
#-keep class javax.activation.** {*;}
#-keep class com.sun.mail.dsn.** {*;}
#-keep class com.sun.mail.handlers.** {*;}
#-keep class com.sun.mail.smtp.** {*;}
#-keep class com.sun.mail.util.** {*;}
#-keep class mailcap.** {*;}
#-keep class mimetypes.** {*;}
#-keep class myjava.awt.datatransfer.** {*;}
#-keep class org.apache.harmony.awt.** {*;}
#-keep class org.apache.harmony.misc.** {*;}
# Proguard configuration for Jackson 2.x (fasterxml package instead of 
codehaus 
 package)

#-keep class com.fasterxml.jackson.annotation.** { *; }
#
#-dontwarn com.fasterxml.jackson.databind.**
#
#-keepclassmembers class com.myapp.models.** { *; }
#
#-keepattributes SourceFile,LineNumberTable
#-keep class com.parse.*{ *; }
#-keep class android.content.res.Xm.ResourceParser.** { *; }
#-keep class com.googlecode.** { *; }
#-dontwarn com.parse.**
#-dontwarn com.squareup.picasso.**
#-keepclasseswithmembernames class * {
#    native <methods>;
#}

Я пробовал несклько разных способов написать правила для сторонних библиотек которые я использую в проекте, но не работет

Вот , что я получаю в логе когда пробуя сделать apk файл в релиз моде

Я не силен в proguard , но если я правильно понимаю то мне нужно написать правила для библиотек , чтоб прогард правильно выполнял свою работу

Но как это сделать ?

Я видел этот проект на гите

https://github.com/krschultz/android-proguard-snippets

Но он тоже не помог, так как есть ошибки в моем логе которые не относятся к нему...

Подскажите, что делать?

Спасибо

ПРАВКА

Поменял градл теперь так https://gist.github.com/albinmathew/c4436f8371c9c41461ab

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

И вот так выглядит `proguard-file'

https://ideone.com/kxsCEh

и вот такую ошибку получаю

https://ideone.com/JhCE3o

READ ALSO
Не скрывается блок в bootstrap (hidden-md hidden-lg)

Не скрывается блок в bootstrap (hidden-md hidden-lg)

Есть блок с 4 элементами в сетке bootstrap которые отличаются по содержанию, а значит и по высотеФидл

357
Разместить div в конце строки (обтекание)

Разместить div в конце строки (обтекание)

Как разместить div в конце последней строки текста произвольной длины?

292
Можно ли совместить html и картинки в один файл?

Можно ли совместить html и картинки в один файл?

У меня есть html документ, который содержит примерно 20 картинокВсе эти файлы лежат в одной папке

450
Так и должно быть?

Так и должно быть?

При получении JSON данных из php, JSON попадает в html

304