Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 为什么proguard don´;我不能自动知道应该保存哪些文件_Android_Android Studio_Proguard - Fatal编程技术网

Android 为什么proguard don´;我不能自动知道应该保存哪些文件

Android 为什么proguard don´;我不能自动知道应该保存哪些文件,android,android-studio,proguard,Android,Android Studio,Proguard,为什么android studio无法推断我们需要哪些类,以便使用shrink删除其他类 为什么我们需要手动编写应该保留哪些类?ProGuard是一种通用Java开发工具。它对Android清单、布局资源、菜单资源、首选项XML等中可能引用的类一无所知 更一般地说,ProGuard无法可靠地确定通过反射加载哪些类,而反射就是如何实现上述所有功能的。对于这些类,您需要教ProGuard保存它们。ProGuard是一种通用Java开发工具。它对Android清单、布局资源、菜单资源、首选项XML等中

为什么android studio无法推断我们需要哪些类,以便使用shrink删除其他类


为什么我们需要手动编写应该保留哪些类?

ProGuard是一种通用Java开发工具。它对Android清单、布局资源、菜单资源、首选项XML等中可能引用的类一无所知


更一般地说,ProGuard无法可靠地确定通过反射加载哪些类,而反射就是如何实现上述所有功能的。对于这些类,您需要教ProGuard保存它们。

ProGuard是一种通用Java开发工具。它对Android清单、布局资源、菜单资源、首选项XML等中可能引用的类一无所知


更一般地说,ProGuard无法可靠地确定通过反射加载哪些类,而反射就是如何实现上述所有功能的。对于这些类,您需要教ProGuard保存它们。

ProGuard是一种通用Java开发工具。它对Android清单、布局资源、菜单资源、首选项XML等中可能引用的类一无所知


更一般地说,ProGuard无法可靠地确定通过反射加载哪些类,而反射就是如何实现上述所有功能的。对于这些类,您需要教ProGuard保存它们。

ProGuard是一种通用Java开发工具。它对Android清单、布局资源、菜单资源、首选项XML等中可能引用的类一无所知

更一般地说,ProGuard无法可靠地确定通过反射加载哪些类,而反射就是如何实现上述所有功能的。对于这些类,您需要教ProGuard保留它们。

另外,来自/ANDROID\u SDK/tools/ANDROID的“update project”命令将生成一个ProGuard,其中包含应保留的公共类

对于大多数应用程序来说,默认设置已经足够了。 您应该添加用作Web视图上JavaScript侦听器的内部类。 以及您发现需要名称的案例(反射或其他)

默认的proguard.cfg如下所示:

-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*

-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService

-keepclasseswithmembernames class * {
    native <methods>;
}

-keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet);
}

-keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet, int);
}

-keepclassmembers class * extends android.app.Activity {
   public void *(android.view.View);
}

-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}

-keep class * implements android.os.Parcelable {
  public static final android.os.Parcelable$Creator *;
}
-优化过程5
-dontusemixedcaseclassnames
-DontskipnonPublicLibraryClass
-不要翻转
-冗长的
-优化!代码/简化/算术,!字段/*,!类/合并/*
-keep public class*扩展android.app.Activity
-keep public class*扩展android.app.Application
-keep public class*扩展了android.app.Service
-keep public class*扩展了android.content.BroadcastReceiver
-keep public class*扩展了android.content.ContentProvider
-keep public class*扩展了android.app.backup.BackupAgentHelper
-keep public class*扩展了android.preference.preference
-保持公共类com.android.vending.licensing.ILicensingService
-KeepClassSwithMemberNames类*{
本地人;
}
-keepclassswithmembers类*{
public(android.content.Context、android.util.AttributeSet);
}
-keepclassswithmembers类*{
public(android.content.Context,android.util.AttributeSet,int);
}
-keepclassmembers类*扩展了android.app.Activity{
public void*(android.view.view);
}
-keepclassmembers枚举*{
公共静态**[]值();
公共静态**valueOf(java.lang.String);
}
-keep class*实现android.os.Parcelable{
公开静态最终android.os.Parcelable$Creator*;
}
另外,来自/ANDROID\u SDK/tools/ANDROID的“update project”命令将生成一个proguard,其中包含应保留的公共类

对于大多数应用程序来说,默认设置已经足够了。 您应该添加用作Web视图上JavaScript侦听器的内部类。 以及您发现需要名称的案例(反射或其他)

默认的proguard.cfg如下所示:

-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*

-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService

-keepclasseswithmembernames class * {
    native <methods>;
}

-keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet);
}

-keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet, int);
}

-keepclassmembers class * extends android.app.Activity {
   public void *(android.view.View);
}

-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}

-keep class * implements android.os.Parcelable {
  public static final android.os.Parcelable$Creator *;
}
-优化过程5
-dontusemixedcaseclassnames
-DontskipnonPublicLibraryClass
-不要翻转
-冗长的
-优化!代码/简化/算术,!字段/*,!类/合并/*
-keep public class*扩展android.app.Activity
-keep public class*扩展android.app.Application
-keep public class*扩展了android.app.Service
-keep public class*扩展了android.content.BroadcastReceiver
-keep public class*扩展了android.content.ContentProvider
-keep public class*扩展了android.app.backup.BackupAgentHelper
-keep public class*扩展了android.preference.preference
-保持公共类com.android.vending.licensing.ILicensingService
-KeepClassSwithMemberNames类*{
本地人;
}
-keepclassswithmembers类*{
public(android.content.Context、android.util.AttributeSet);
}
-keepclassswithmembers类*{
public(android.content.Context,android.util.AttributeSet,int);
}
-keepclassmembers类*扩展了android.app.Activity{
public void*(android.view.view);
}
-keepclassmembers枚举*{
公共静态**[]值();
公共静态**valueOf(java.lang.String);
}
-keep class*实现android.os.Parcelable{
公开静态最终android.os.Parcelable$Creator*;
}
另外,来自/ANDROID\u SDK/tools/ANDROID的“update project”命令将生成一个proguard,其中包含应保留的公共类

对于大多数应用程序来说,默认设置已经足够了。 您应该添加用作Web视图上JavaScript侦听器的内部类。 以及您发现需要名称的案例(反射或其他)

默认的proguard.cfg如下所示:

-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*

-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService

-keepclasseswithmembernames class * {
    native <methods>;
}

-keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet);
}

-keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet, int);
}

-keepclassmembers class * extends android.app.Activity {
   public void *(android.view.View);
}

-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}

-keep class * implements android.os.Parcelable {
  public static final android.os.Parcelable$Creator *;
}
-优化过程5
-dontusemixedcaseclassnames
-DontskipnonPublicLibraryClass
-不要翻转
-冗长的
-优化!代码/简化/算术,!字段/*,!类/合并/*
-keep public class*扩展android.app.Activity
-keep public class*扩展android.app.Application
-keep public class*扩展了android.app.Service
-keep public class*扩展了android.content.BroadcastReceiver
-公开课