안녕하세요
리모트 몬스터로 1:1화상채팅 빌드중인데요
///////////////////////////////////////
잘 될때의 프로가드 설정은 디버그용 없이 아래와 같았습니다
예외설정은 따로 없었습니다.
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
///////////////////////////////////
그래서 테스트를 위해 홈페이지 상에 나와있는 프로가드 설정을 아래처럼 추가하였습니다.
buildTypes {
debug {
minifyEnabled false
proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’
}
release {
minifyEnabled false
proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’
}
}
예외설정도 홈페이지에 나와있는 아래 문장들 추가했습니다.
-keepattributes SourceFile,LineNumberTable, InnerClasses, Exceptions, Signature, EnclosingMethod
-keepattributes Annotation
-dontoptimize
-dontwarn org.**
-dontwarn retrofit2.**
-keep class com.remotemonster.sdk.* { *;}
-keep class com.remotemonster.sdk.data.** { *;}
-keep class com.remotemonster.sdk.util.Logger{ *;}
-keep class com.remotemonster.sdk.data.Channel{ *;}
-keep class com.remotemonster.sdk.data.InitMessage{ *;}
-keep enum com.remotemonster.sdk.data.ChannelStatus{ *;}
-keep enum com.remotemonster.sdk.data.ChannelType{ *;}
-keep class org.** { *;}
-keep interface org.** { *;}
-keepclasseswithmembers class * {@retrofit2.http.* ;}
-keep class retrofit2.** { *; }
위에처럼 설정하니까 vm이나 테스트기에서 잘되다가 안되는 현상이 있었습니다
java.lang.NoClassDefFoundError: g.b.b.k 이런 멘트가 뜨는 현상이 좀 많이 있었고
다른 멘트 도 종종 떳었습니다.
///////////////////////////////////////////////
나중에 true로 출시한다는 가정하에 리모트 몬스터 없을 때 아래와 같이 설정했었을 때는 잘 되었지만 리모트 몬스터 추가 빌드 후에는 앱 실행자체가 안되었습니다. (물론 프로가드 파일 예외설정에 추가했습니다)
debug {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt')
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
proguardFile 'proguard-rules.pro'
proguardFile 'proguard-debug.pro'
consumerProguardFiles 'proguard-project.txt'
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
consumerProguardFiles 'proguard-project.txt'
}
예외설정
-keep class com.google.firebase.provider.FirebaseInitProvider
-keepclassmembers class com.myappapp.myapplication.** { *; }
-dontwarn android.support.**
-keepclasseswithmembernames class * { native ; }
-keep class com.android.vending.billing.IInAppBillingService$Stub
-keep class * implements com.android.vending.billing.IInAppBillingService { ; }
-keep class com.android.vending.billing.* { ; }
-keep class com.android.vending.billing.*
-keep class com.myappapp.myapplication.itemdecorator
-keep public class * extends android.support.v7.widget.RecyclerView.ItemDecoration
-keep class android.support.v7.widget.RecyclerView
-keep public class * implements com.bumptech.glide.module.GlideModule
-keep class * extends com.bumptech.glide.module.AppGlideModule {
(…);
}
-keep public enum com.bumptech.glide.load.ImageHeaderParser$** {
**[] $VALUES;
public *;
}
-keep class com.bumptech.glide.load.data.ParcelFileDescriptorRewinder$InternalRewinder {
*** rewind();
}
-keepattributes SourceFile,LineNumberTable, InnerClasses, Exceptions, Signature, EnclosingMethod
-keepattributes Annotation
-dontoptimize
-dontwarn org.**
-dontwarn retrofit2.**
-keep class com.remotemonster.sdk.* { ;}
-keep class com.remotemonster.sdk.data.* { *;}
-keep class com.remotemonster.sdk.util.Logger{ *;}
-keep class com.remotemonster.sdk.data.Channel{ *;}
-keep class com.remotemonster.sdk.data.InitMessage{ ;}
-keep enum com.remotemonster.sdk.data.ChannelStatus{ ;}
-keep enum com.remotemonster.sdk.data.ChannelType{ ;}
-keep class org. { ;}
-keep interface org. { *;}
-keepclasseswithmembers class * {@retrofit2.http.* ;}
-keep class retrofit2.** { *; }
////////////////////////////////////////
그럼 확인 후 프로가드를 구체적으로 어떻게 설정하면 되는지 확인 부탁드립니다.