java—在自身上使用proguard

plicqrtu  于 2021-07-06  发布在  Java
关注(0)|答案(0)|浏览(640)

我目前正在尝试使用proguard,作为第一步,我想在proguard本身上使用它(必须从某处开始……)。然而,这并不容易,任何帮助都是欢迎的。
版本:
proguard-7.0.1版本
openjdk-11.0.2版本
命令行:

  1. java -jar proguard.jar @proguard.pro

配置文件:

  1. -injars proguard.jar
  2. -outjars proguard_out.jar
  3. -libraryjars <java.home>/jmods/java.base.jmod(!**.jar;!module-info.class)
  4. -printmapping myapplication.map
  5. -keep public class proguard.ProGuard {
  6. public static void main(java.lang.String[]);
  7. }

输出:

  1. ProGuard, version 7.0.1
  2. Reading program jar [C:\Users\Myself\Desktop\TestProGuard\proguard.jar] (filtered)
  3. Reading library jmod [E:\software\Java\jdk-11.0.2\jmods\java.base.jmod] (filtered)
  4. Note: com.google.gson.FieldAttributes calls 'Field.getAnnotation'
  5. Note: com.google.gson.FieldAttributes calls 'Field.getAnnotations'
  6. Note: com.google.gson.internal.Excluder calls 'Field.getAnnotation'
  7. Note: com.google.gson.internal.Excluder calls 'Class.getAnnotation'
  8. Note: com.google.gson.internal.bind.JsonAdapterAnnotationTypeAdapterFactory calls 'Class.getAnnotation'
  9. Note: com.google.gson.internal.bind.ReflectiveTypeAdapterFactory calls 'Field.getAnnotation'
  10. Note: com.google.gson.internal.bind.TypeAdapters$EnumTypeAdapter calls 'Field.getAnnotation'
  11. Note: kotlin.coroutines.jvm.internal.DebugMetadataKt calls 'Class.getAnnotation'
  12. Note: com.google.gson.FieldAttributes calls 'Field.getGenericType'
  13. Note: com.google.gson.FieldAttributes calls 'Field.getType'
  14. Note: com.google.gson.internal.$Gson$Types calls 'Class.getGenericInterfaces'
  15. Note: com.google.gson.internal.$Gson$Types calls 'Class.getGenericSuperclass'
  16. Note: com.google.gson.internal.$Gson$Types calls 'Class.getTypeParameters'
  17. Note: com.google.gson.internal.Excluder calls 'Field.getType'
  18. Note: com.google.gson.internal.bind.ReflectiveTypeAdapterFactory calls 'Field.getType'
  19. Note: com.google.gson.internal.bind.ReflectiveTypeAdapterFactory calls 'Field.getGenericType'
  20. Note: com.google.gson.internal.bind.ReflectiveTypeAdapterFactory calls 'Class.getGenericSuperclass'
  21. Note: com.google.gson.reflect.TypeToken calls 'Class.getGenericSuperclass'
  22. Note: com.google.gson.reflect.TypeToken calls 'Class.getTypeParameters'
  23. Note: com.google.gson.reflect.TypeToken calls 'Class.getGenericInterfaces'
  24. Note: kotlin.jvm.internal.ReflectionFactory calls 'Class.getGenericInterfaces'
  25. Note: com.google.gson.internal.$Gson$Types$ParameterizedTypeImpl calls 'Class.getEnclosingClass'
  26. Warning: com.google.gson.DefaultDateTypeAdapter: can't find referenced class java.sql.Date
  27. Warning: com.google.gson.DefaultDateTypeAdapter: can't find referenced class java.sql.Timestamp
  28. Warning: com.google.gson.DefaultDateTypeAdapter: can't find referenced class java.sql.Timestamp
  29. Warning: com.google.gson.DefaultDateTypeAdapter: can't find referenced class java.sql.Date
  30. Warning: com.google.gson.GsonBuilder: can't find referenced class java.sql.Timestamp
  31. Warning: com.google.gson.GsonBuilder: can't find referenced class java.sql.Date
  32. Warning: com.google.gson.GsonBuilder: can't find referenced class java.sql.Timestamp
  33. Warning: com.google.gson.GsonBuilder: can't find referenced class java.sql.Date
  34. Warning: com.google.gson.GsonBuilder: can't find referenced class java.sql.Timestamp
  35. Warning: com.google.gson.GsonBuilder: can't find referenced class java.sql.Date
  36. Warning: com.google.gson.GsonBuilder: can't find referenced class java.sql.Timestamp
  37. Warning: com.google.gson.GsonBuilder: can't find referenced class java.sql.Date
  38. Warning: com.google.gson.internal.bind.SqlDateTypeAdapter: can't find referenced class java.sql.Date
  39. Warning: com.google.gson.internal.bind.SqlDateTypeAdapter: can't find referenced class java.sql.Date
  40. Warning: com.google.gson.internal.bind.SqlDateTypeAdapter: can't find referenced class java.sql.Date
  41. Warning: com.google.gson.internal.bind.SqlDateTypeAdapter: can't find referenced class java.sql.Date
  42. Warning: com.google.gson.internal.bind.SqlDateTypeAdapter: can't find referenced class java.sql.Date
  43. Warning: com.google.gson.internal.bind.SqlDateTypeAdapter: can't find referenced class java.sql.Date
  44. Warning: com.google.gson.internal.bind.SqlDateTypeAdapter: can't find referenced class java.sql.Date
  45. Warning: com.google.gson.internal.bind.SqlDateTypeAdapter$1: can't find referenced class java.sql.Date
  46. ...
  47. Note: com.google.gson.internal.reflect.UnsafeReflectionAccessor: can't find dynamically referenced class sun.misc.Unsafe
  48. Note: kotlin.internal.PlatformImplementationsKt: can't find dynamically referenced class kotlin.internal.jdk8.JDK8PlatformImplementations
  49. Note: kotlin.internal.PlatformImplementationsKt: can't find dynamically referenced class kotlin.internal.JRE8PlatformImplementations
  50. Note: kotlin.internal.PlatformImplementationsKt: can't find dynamically referenced class kotlin.internal.jdk7.JDK7PlatformImplementations
  51. Note: kotlin.internal.PlatformImplementationsKt: can't find dynamically referenced class kotlin.internal.JRE7PlatformImplementations
  52. Note: kotlin.jvm.internal.Reflection: can't find dynamically referenced class kotlin.reflect.jvm.internal.ReflectionFactoryImpl
  53. Note: proguard.configuration.ConfigurationLogger: can't find dynamically referenced class android.util.Log
  54. Note: com.google.gson.internal.ConstructorConstructor accesses a declared constructor '<init>()' dynamically
  55. Maybe this is program method 'com.google.gson.Gson { Gson(); }'
  56. Maybe this is program method 'com.google.gson.Gson$3 { Gson$3(); }'
  57. Maybe this is program method 'com.google.gson.Gson$FutureTypeAdapter { Gson$FutureTypeAdapter(); }'
  58. Maybe this is program method 'com.google.gson.GsonBuilder { GsonBuilder(); }'
  59. Maybe this is program method 'com.google.gson.JsonArray { JsonArray(); }'
  60. Maybe this is program method 'com.google.gson.JsonElement { JsonElement(); }'
  61. Maybe this is program method 'com.google.gson.JsonNull { JsonNull(); }'
  62. Maybe this is program method 'com.google.gson.JsonObject { JsonObject(); }'
  63. Maybe this is program method 'com.google.gson.JsonParser { JsonParser(); }'
  64. Maybe this is program method 'com.google.gson.TypeAdapter { TypeAdapter(); }'
  65. ...
  66. Maybe this is program method 'org.intellij.lang.annotations.JdkConstants { JdkConstants(); }'
  67. Maybe this is program method 'org.intellij.lang.annotations.PrintFormatPattern { PrintFormatPattern(); }'
  68. Maybe this is program method 'proguard.ClassPath { ClassPath(); }'
  69. Maybe this is program method 'proguard.ClassSpecification { ClassSpecification(); }'
  70. Maybe this is program method 'proguard.ClassSpecificationVisitorFactory { ClassSpecificationVisitorFactory(); }'
  71. Maybe this is program method 'proguard.Configuration { Configuration(); }'
  72. Maybe this is program method 'proguard.ConfigurationConstants { ConfigurationConstants(); }'
  73. Maybe this is program method 'proguard.GPL { GPL(); }'
  74. Maybe this is program method 'proguard.MemberSpecification { MemberSpecification(); }'
  75. Maybe this is program method 'proguard.MemberValueSpecification { MemberValueSpecification(); }'
  76. Maybe this is program method 'proguard.ParseException { ParseException(); }'
  77. ...
  78. Maybe this is library method 'com.sun.crypto.provider.AESCipher$AES128_CBC_NoPadding { AESCipher$AES128_CBC_NoPadding(); }'
  79. Maybe this is library method 'com.sun.crypto.provider.AESCipher$AES128_CFB_NoPadding { AESCipher$AES128_CFB_NoPadding(); }'
  80. Maybe this is library method 'com.sun.crypto.provider.AESCipher$AES128_ECB_NoPadding { AESCipher$AES128_ECB_NoPadding(); }'
  81. Maybe this is library method 'com.sun.crypto.provider.AESCipher$AES128_GCM_NoPadding { AESCipher$AES128_GCM_NoPadding(); }'
  82. Maybe this is library method 'com.sun.crypto.provider.AESCipher$AES128_OFB_NoPadding { AESCipher$AES128_OFB_NoPadding(); }'
  83. Maybe this is library method 'com.sun.crypto.provider.AESCipher$AES192_CBC_NoPadding { AESCipher$AES192_CBC_NoPadding(); }'
  84. Maybe this is library method 'com.sun.crypto.provider.AESCipher$AES192_CFB_NoPadding { AESCipher$AES192_CFB_NoPadding(); }'
  85. Maybe this is library method 'com.sun.crypto.provider.AESCipher$AES192_ECB_NoPadding { AESCipher$AES192_ECB_NoPadding(); }'
  86. Maybe this is library method 'com.sun.crypto.provider.AESCipher$AES192_GCM_NoPadding { AESCipher$AES192_GCM_NoPadding(); }'
  87. Maybe this is library method 'com.sun.crypto.provider.AESCipher$AES192_OFB_NoPadding { AESCipher$AES192_OFB_NoPadding(); }'
  88. Maybe this is library method 'com.sun.crypto.provider.AESCipher$AES256_CBC_NoPadding { AESCipher$AES256_CBC_NoPadding(); }'
  89. Maybe this is library method 'com.sun.crypto.provider.AESCipher$AES256_CFB_NoPadding { AESCipher$AES256_CFB_NoPadding(); }'
  90. Maybe this is library method 'com.sun.crypto.provider.AESCipher$AES256_ECB_NoPadding { AESCipher$AES256_ECB_NoPadding(); }'
  91. Maybe this is library method 'com.sun.crypto.provider.AESCipher$AES256_GCM_NoPadding { AESCipher$AES256_GCM_NoPadding(); }'
  92. Maybe this is library method 'com.sun.crypto.provider.AESCipher$AES256_OFB_NoPadding { AESCipher$AES256_OFB_NoPadding(); }'
  93. ...
  94. Maybe this is library method 'java.io.ByteArrayOutputStream { ByteArrayOutputStream(); }'
  95. Maybe this is library method 'java.io.CharArrayWriter { CharArrayWriter(); }'
  96. Maybe this is library method 'java.io.CharConversionException { CharConversionException(); }'
  97. Maybe this is library method 'java.io.EOFException { EOFException(); }'
  98. Maybe this is library method 'java.io.FileDescriptor { FileDescriptor(); }'
  99. Maybe this is library method 'java.io.FileNotFoundException { FileNotFoundException(); }'
  100. Maybe this is library method 'java.io.FilePermissionCollection { FilePermissionCollection(); }'
  101. Maybe this is library method 'java.io.IOException { IOException(); }'
  102. Maybe this is library method 'java.io.InputStream { InputStream(); }'
  103. Maybe this is library method 'java.io.InterruptedIOException { InterruptedIOException(); }'
  104. Maybe this is library method 'java.io.NotActiveException { NotActiveException(); }'
  105. Maybe this is library method 'java.io.NotSerializableException { NotSerializableException(); }'
  106. Maybe this is library method 'java.io.ObjectInputStream { ObjectInputStream(); }'
  107. Maybe this is library method 'java.io.ObjectInputStream$GetField { ObjectInputStream$GetField(); }'
  108. Maybe this is library method 'java.io.ObjectInputStream$HandleTable$HandleList { ObjectInputStream$HandleTable$HandleList(); }'
  109. Maybe this is library method 'java.io.ObjectOutputStream { ObjectOutputStream(); }'
  110. Maybe this is library method 'java.io.ObjectOutputStream$PutField { ObjectOutputStream$PutField(); }'
  111. Maybe this is library method 'java.io.ObjectStreamException { ObjectStreamException(); }'
  112. Maybe this is library method 'java.io.OutputStream { OutputStream(); }'
  113. Maybe this is library method 'java.io.PipedInputStream { PipedInputStream(); }'
  114. Maybe this is library method 'java.io.PipedOutputStream { PipedOutputStream(); }'
  115. Maybe this is library method 'java.io.PipedReader { PipedReader(); }'
  116. Maybe this is library method 'java.io.PipedWriter { PipedWriter(); }'
  117. Maybe this is library method 'java.io.Reader { Reader(); }'
  118. Maybe this is library method 'java.io.StreamCorruptedException { StreamCorruptedException(); }'
  119. Maybe this is library method 'java.io.StringWriter { StringWriter(); }'
  120. Maybe this is library method 'java.io.UTFDataFormatException { UTFDataFormatException(); }'
  121. Maybe this is library method 'java.io.UnsupportedEncodingException { UnsupportedEncodingException(); }'
  122. Maybe this is library method 'java.io.WinNTFileSystem { WinNTFileSystem(); }'
  123. Maybe this is library method 'java.io.Writer { Writer(); }'
  124. ...
  125. Maybe this is program field 'com.google.gson.internal.reflect.UnsafeReflectionAccessor { java.lang.Object theUnsafe; }'
  126. Note: com.google.gson.internal.UnsafeAllocator accesses a method 'allocateInstance(java.lang.Class)' dynamically
  127. Maybe this is library method 'jdk.internal.misc.Unsafe { java.lang.Object allocateInstance(java.lang.Class); }'
  128. Note: com.google.gson.internal.reflect.UnsafeReflectionAccessor accesses a method 'objectFieldOffset(java.lang.reflect.Field)' dynamically
  129. Maybe this is library method 'jdk.internal.misc.Unsafe { long objectFieldOffset(java.lang.reflect.Field); }'
  130. Note: com.google.gson.internal.reflect.UnsafeReflectionAccessor accesses a method 'putBoolean(java.lang.Object,long,boolean)' dynamically
  131. Maybe this is library method 'jdk.internal.misc.Unsafe { void putBoolean(java.lang.Object,long,boolean); }'
  132. Note: com.google.gson.internal.reflect.UnsafeReflectionAccessor accesses a declared field 'theUnsafe' dynamically
  133. Maybe this is program field 'com.google.gson.internal.reflect.UnsafeReflectionAccessor { java.lang.Object theUnsafe; }'
  134. Note: kotlin.coroutines.jvm.internal.DebugMetadataKt accesses a declared field 'label' dynamically
  135. Maybe this is program field 'kotlin.collections.SlidingWindowKt$windowedIterator$1 { int label; }'
  136. Maybe this is program field 'kotlin.coroutines.experimental.jvm.internal.CoroutineImpl { int label; }'
  137. Maybe this is program field 'kotlin.coroutines.intrinsics.IntrinsicsKt__IntrinsicsJvmKt$createCoroutineFromSuspendFunction$1 { int label; }'
  138. Maybe this is program field 'kotlin.coroutines.intrinsics.IntrinsicsKt__IntrinsicsJvmKt$createCoroutineFromSuspendFunction$2 { int label; }'
  139. Maybe this is program field 'kotlin.coroutines.intrinsics.IntrinsicsKt__IntrinsicsJvmKt$createCoroutineUnintercepted$$inlined$createCoroutineFromSuspendFunction$IntrinsicsKt__IntrinsicsJvmKt$1 { int label; }'
  140. Maybe this is program field 'kotlin.coroutines.intrinsics.IntrinsicsKt__IntrinsicsJvmKt$createCoroutineUnintercepted$$inlined$createCoroutineFromSuspendFunction$IntrinsicsKt__IntrinsicsJvmKt$2 { int label; }'
  141. Maybe this is program field 'kotlin.coroutines.intrinsics.IntrinsicsKt__IntrinsicsJvmKt$createCoroutineUnintercepted$$inlined$createCoroutineFromSuspendFunction$IntrinsicsKt__IntrinsicsJvmKt$3 { int label; }'
  142. Maybe this is program field 'kotlin.coroutines.intrinsics.IntrinsicsKt__IntrinsicsJvmKt$createCoroutineUnintercepted$$inlined$createCoroutineFromSuspendFunction$IntrinsicsKt__IntrinsicsJvmKt$4 { int label; }'
  143. Maybe this is program field 'kotlin.sequences.SequencesKt__SequencesKt$ifEmpty$1 { int label; }'
  144. Maybe this is program field 'kotlin.sequences.SequencesKt___SequencesKt$zipWithNext$2 { int label; }'
  145. Maybe this is program field 'proguard.classfile.util.DynamicMemberReferenceInitializer$MyDynamicMemberFinder { int label; }'
  146. Maybe this is program field 'proguard.optimize.gson.GsonDeserializationOptimizer$FromJsonFieldCase { proguard.classfile.editor.CompactCodeAttributeComposer$Label label; }'
  147. Maybe this is program field 'proguard.optimize.gson.OptimizedTypeAdapterInitializer$SwitchCase { proguard.classfile.editor.CodeAttributeEditor$Label label; }'
  148. Maybe this is library field 'jdk.internal.org.objectweb.asm.tree.JumpInsnNode { jdk.internal.org.objectweb.asm.tree.LabelNode label; }'
  149. Note: kotlin.coroutines.jvm.internal.ModuleNameRetriever accesses a declared method 'getDescriptor()' dynamically
  150. Maybe this is library method 'com.sun.java.util.jar.pack.Package$Class$Member { com.sun.java.util.jar.pack.ConstantPool$DescriptorEntry getDescriptor(); }'
  151. Maybe this is library method 'java.lang.Module { java.lang.module.ModuleDescriptor getDescriptor(); }'
  152. Maybe this is library method 'java.lang.StackFrameInfo { java.lang.String getDescriptor(); }'
  153. Maybe this is library method 'java.lang.StackWalker$StackFrame { java.lang.String getDescriptor(); }'
  154. Maybe this is library method 'jdk.internal.org.objectweb.asm.Type { java.lang.String getDescriptor(); }'
  155. Maybe this is library method 'jdk.internal.org.objectweb.asm.commons.Method { java.lang.String getDescriptor(); }'
  156. ...
  157. Note: kotlinx.metadata.internal.protobuf.GeneratedMessageLite$SerializedForm accesses a method 'newBuilder()' dynamically
  158. Maybe this is program method 'com.google.gson.Gson { com.google.gson.GsonBuilder newBuilder(); }'
  159. Maybe this is program method 'kotlinx.metadata.internal.metadata.ProtoBuf$Annotation { kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder newBuilder(); }'
  160. Maybe this is program method 'kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument { kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder newBuilder(); }'
  161. Maybe this is program method 'kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value { kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder newBuilder(); }'
  162. Maybe this is program method 'kotlinx.metadata.internal.metadata.ProtoBuf$Class { kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder newBuilder(); }'
  163. Maybe this is program method 'kotlinx.metadata.internal.metadata.ProtoBuf$Constructor { kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder newBuilder(); }'
  164. Maybe this is program method 'kotlinx.metadata.internal.metadata.ProtoBuf$Contract { kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder newBuilder(); }'
  165. Maybe this is program method 'kotlinx.metadata.internal.metadata.ProtoBuf$Effect { kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder newBuilder(); }'
  166. Maybe this is program method 'kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry { kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder newBuilder(); }'
  167. Maybe this is program method 'kotlinx.metadata.internal.metadata.ProtoBuf$Expression { kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder newBuilder(); }'
  168. Maybe this is program method 'kotlinx.metadata.internal.metadata.ProtoBuf$Function { kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder newBuilder(); }'
  169. Maybe this is program method 'kotlinx.metadata.internal.metadata.ProtoBuf$Package { kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder newBuilder(); }'
  170. Maybe this is program method 'kotlinx.metadata.internal.metadata.ProtoBuf$PackageFragment { kotlinx.metadata.internal.metadata.ProtoBuf$PackageFragment$Builder newBuilder(); }'
  171. Maybe this is program method 'kotlinx.metadata.internal.metadata.ProtoBuf$Property { kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder newBuilder(); }'
  172. Maybe this is program method 'kotlinx.metadata.internal.metadata.ProtoBuf$QualifiedNameTable { kotlinx.metadata.internal.metadata.ProtoBuf$QualifiedNameTable$Builder newBuilder(); }'
  173. Maybe this is program method 'kotlinx.metadata.internal.metadata.ProtoBuf$QualifiedNameTable$QualifiedName { kotlinx.metadata.internal.metadata.ProtoBuf$QualifiedNameTable$QualifiedName$Builder newBuilder(); }'
  174. Maybe this is program method 'kotlinx.metadata.internal.metadata.ProtoBuf$StringTable { kotlinx.metadata.internal.metadata.ProtoBuf$StringTable$Builder newBuilder(); }'
  175. Maybe this is program method 'kotlinx.metadata.internal.metadata.ProtoBuf$Type { kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder newBuilder(); }'
  176. Maybe this is program method 'kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument { kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder newBuilder(); }'
  177. Maybe this is program method 'kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias { kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder newBuilder(); }'
  178. Maybe this is program method 'kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter { kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder newBuilder(); }'
  179. Maybe this is program method 'kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable { kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder newBuilder(); }'
  180. Maybe this is program method 'kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter { kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder newBuilder(); }'
  181. Maybe this is program method 'kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement { kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder newBuilder(); }'
  182. Maybe this is program method 'kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable { kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder newBuilder(); }'
  183. Maybe this is program method 'kotlinx.metadata.internal.metadata.jvm.JvmModuleProtoBuf$Module { kotlinx.metadata.internal.metadata.jvm.JvmModuleProtoBuf$Module$Builder newBuilder(); }'
  184. Maybe this is program method 'kotlinx.metadata.internal.metadata.jvm.JvmModuleProtoBuf$PackageParts { kotlinx.metadata.internal.metadata.jvm.JvmModuleProtoBuf$PackageParts$Builder newBuilder(); }'
  185. Maybe this is program method 'kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature { kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder newBuilder(); }'
  186. Maybe this is program method 'kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature { kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder newBuilder(); }'
  187. Maybe this is program method 'kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature { kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder newBuilder(); }'
  188. Maybe this is program method 'kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes { kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder newBuilder(); }'
  189. Maybe this is program method 'kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record { kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder newBuilder(); }'
  190. Maybe this is library method 'java.nio.file.attribute.AclEntry { java.nio.file.attribute.AclEntry$Builder newBuilder(); }'
  191. Note: proguard.configuration.ConfigurationLogger accesses a method 'w(java.lang.String,java.lang.String)' dynamically
  192. Note: there were 8 classes trying to access annotations using reflection.
  193. You should consider keeping the annotation attributes
  194. (using '-keepattributes *Annotation*').
  195. (https://www.guardsquare.com/proguard/manual/troubleshooting#attributes)
  196. Note: there were 13 classes trying to access generic signatures using reflection.
  197. You should consider keeping the signature attributes
  198. (using '-keepattributes Signature').
  199. (https://www.guardsquare.com/proguard/manual/troubleshooting#attributes)
  200. Note: there were 1 classes trying to access enclosing classes using reflection.
  201. You should consider keeping the inner classes attributes
  202. (using '-keepattributes InnerClasses').
  203. (https://www.guardsquare.com/proguard/manual/troubleshooting#attributes)
  204. Note: there were 8 unresolved dynamic references to classes or interfaces.
  205. You should check if you need to specify additional program jars.
  206. (https://www.guardsquare.com/proguard/manual/troubleshooting#dynamicalclass)
  207. Note: there were 11 accesses to class members by means of reflection.
  208. You should consider explicitly keeping the mentioned class members
  209. (using '-keep' or '-keepclassmembers').
  210. (https://www.guardsquare.com/proguard/manual/troubleshooting#dynamicalclassmember)
  211. Warning: there were 36 unresolved references to classes or interfaces.
  212. You may need to add missing library jars or update their versions.
  213. If your code works fine without the missing classes, you can suppress
  214. the warnings with '-dontwarn' options.
  215. (https://www.guardsquare.com/proguard/manual/troubleshooting#unresolvedclass)
  216. Error: Please correct the above warnings first.

如您所见,它提供了大量警告,需要在继续之前修复它们。我查看了几个参考资料,它们都表明在这个基本配置中使用proguard本身是非常容易的,但是没有任何关于处理这些错误的内容。。。
那么我该如何修复这些错误呢?先谢谢你,

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题