我正在尝试添加保护规则。即使我没有添加这些规则,当我将minifyEnabled设置为true时,我的项目中也会出现一些问题。例如,套接字结构损坏,当试图通过套接字与另一台设备通信时,它接收到请求但无法发送响应。另一个例子是在编写xml时不打印某些值。当我将minifyEnabled设置为true时,所有这些都会发生。这个项目太大了,我不确定是什么原因造成的。
你能提出一个想法或替代工具来找到问题的根源并解决它吗?
正如我所说的,即使规则文件是空的,即使我只是将minifyEnabled值设置为true,这些问题也会发生,我不知道如何通过将它们添加到规则文件中来防止这些问题。
build.gradle
release {
shrinkResources false
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
buildConfigField("String", 'BUNDLE_DATE', '"17.06.2021 09:08"')
buildConfigField("String", 'BUNDLE_ID', '"13"')
}
debug {
minifyEnabled true
shrinkResources false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
ext.enableCrashlytics = false
ext.alwaysUpdateBuildId = false
aaptOptions {
cruncherEnabled false
}
implementation 'org.bouncycastle:bcprov-jdk15to18:1.68'
implementation 'org.owasp.encoder:encoder:1.2.3'
compile fileTree(include: ['*.jar'], dir: 'libs')
compile project(':logfilemanager')
compile files('libs/ormlite-android-4.48.jar')
compile files('libs/ormlite-core-4.48.jar')
compile files('libs/zxing.jar')
compile files('libs/calimero-2.0.4.jar')
implementation 'com.android.volley:volley:1.2.1'
implementation 'androidx.multidex:multidex:2.0.1'
implementation 'androidx.appcompat:appcompat:1.5.1'
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'cat.ereza:customactivityoncrash:2.4.0'
compile group: 'cz.msebera.android', name: 'httpclient', version: '4.5.8'
implementation 'com.google.android.gms:play-services-location:20.0.0'
implementation 'org.kie.modules:org-apache-commons-net:6.5.0.Final'
implementation 'com.github.bumptech.glide:glide:4.13.2'
implementation 'com.github.justzak:dilatingdotsprogressbar:1.0.1'
implementation 'com.google.code.gson:gson:2.9.1'
implementation "androidx.recyclerview:recyclerview:1.2.1"
implementation 'org.java-websocket:Java-WebSocket:1.5.3'
implementation("com.squareup.okhttp3:okhttp:4.10.0")
implementation group: 'commons-fileupload', name: 'commons-fileupload', version: '1.4'
implementation 'javax.servlet:javax.servlet-api:4.0.1'
当编译apks时,你没有添加任何关于proguard文件等于混合一切的规则
这是一个正常的保护文件
-dontwarn com.android.**
-keep class * extends com.android.View {*;}
-keep public class * extends android.webkit.WebChromeClient
-keep class * implements java.io.Serializable {*;}
-dontwarn okhttp3.**
-dontwarn org.**
-keep public class * implements com.bumptech.glide.module.GlideModule
-keep public class * extends com.bumptech.glide.AppGlideModule
-keep class com.google.** {*;}
-keep class com.facebook.** {*;}
-keep class com.com.appsflyer.** {*;}
-optimizationpasses 5
-dontusemixedcaseclassnames
-verbose
-keepattributes Signature
-keepattributes SourceFile,LineNumberTable
-keepclasseswithmembernames class * {
native <methods>;
}
-adaptclassstrings
-keepattributes InnerClasses, EnclosingMethod, Signature, *Annotation*
-keep class androidx.**{*;}
除了这些项目,你仍然需要添加你的json转换java bean或数据类的东西(这就是为什么你的套接字结构被破坏),一些第三方库需要保留