Android 在发布版本中未完全禁用截击日志

Android 在发布版本中未完全禁用截击日志,android,android-volley,android-logcat,Android,Android Volley,Android Logcat,Volley仍在logcat中打印日志,但未禁用。我尝试使用proguard-rules.pro,但它仍然显示日志。 下面我添加了proguard-rules.pro文件 -dontwarn ** -target 1.7 -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -dontpreverify -verbose -optimizations !code/simplification/arithmetic,!code/

Volley仍在logcat中打印日志,但未禁用。我尝试使用proguard-rules.pro,但它仍然显示日志。 下面我添加了proguard-rules.pro文件

-dontwarn **
-target 1.7
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose

-optimizations !code/simplification/arithmetic,!code/allocation/variable
-keep class **
-keepclassmembers class *{*;}
-keepattributes *
-assumenosideeffects class android.util.Log {
   public static boolean isLoggable(java.lang.String, int);
    public static int v(...);
    public static int i(...);
    public static int w(...);
    public static int d(...);
   public static int e(...);
}
-assumenosideeffects class java.io.PrintStream {
     public void println(%);
     public void println(**);
}
它在logcat中打印如下内容

I/System.out: open:http:...
I/System.out: [CDS][DNS] getAllByNameImpl netId = 0
D/libc-netbsd: [getaddrinfo]: ai_addrlen=0; ai_canonname=(null); ai_flags=4; ai_family=0
D/libc-netbsd: [getaddrinfo]: hostname=simplifiedcoding.16mb.com; servname=(null); cache_mode=(null), netid=0; mark=0
D/libc-netbsd: [getaddrinfo]: hostname=simplifiedcoding.16mb.com; servname=(null); cache_mode=(null), netid=0; mark=0
D/libc-netbsd: [getaddrinfo]: ai_addrlen=0; ai_canonname=(null); ai_flags=1024; ai_family=0
D/FrameworkListener: dispatchCommand data = (getaddrinfo simplifiedcoding.16mb.com ^ 1024 0 1 0 0)
D/libc-netbsd: [getaddrinfo]: hostname=simplifiedcoding.16mb.com; servname=(null); cache_mode=local, netid=109; mark=917613
D/libc-netbsd: [getaddrinfo]: ai_addrlen=0; ai_canonname=(null); ai_flags=1024; ai_family=0
D/libc-netbsd: default dns: query_ipv6=1, query_ipv4=1
D/libc-netbsd: res_queryN name = simplifiedcoding.16mb.com, class = 1, type = 28
D/libc-netbsd: res_queryN name = simplifiedcoding.16mb.com, class = 1, type = 1
D/libc-netbsd: res_queryN name = simplifiedcoding.16mb.com succeed
D/SocketClient: SocketClient sendData done: 222
D/SocketClient: SocketClient sendData done: 
D/SocketClient: SocketClient sendData done: 

如果你有什么好的解决方案,请告诉我你在毕业典礼上提到过吗

buildTypes {
    release {
        minifyEnabled true
        debuggable false
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt')
    }
}
如果您默认设置了此选项

proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'

仅添加此文件

在发布和调试模式下检查
VolleyLog.DEBUG
的值。然后尝试设置
VolleyLog.DEBUG=BuildConfig.DEBUG
BuildConfig
类是您的主要应用程序包。

是否制作了已签名的apk并安装在您的设备中,并检查了EDAS(据我所知),它会在android studio中显示用于调试的日志,而其他应用程序则不会显示,因为有些应用程序需要获取应用程序的日志,而此时您的应用程序不会发布日志。您只需要设置VolleyLog.DEBUG=BuildConfig.DEBUG从主类开始,如果使用Singleton模式,则在主类中初始化Volley。它显示默认的VolleyLog.DEBUG=true,因此我将VolleyLog.DEBUG=BuildConfig.DEBUG设置为这样,现在我正在测试它。如果设置为false作为默认值,则如何始终?默认值始终为true,并且在Build.Config.DEBUG中,它也显示为true。它不应该是默认值案例发布模式下的BuildConfig.DEBUG应打印为false。因为我在我的应用程序中使用相同的。