android Kotlin,启用Proguard时未找到任何

zazmityj  于 2024-01-04  发布在  Android
关注(0)|答案(1)|浏览(167)

我看到一个崩溃在运行时,当Proguard是启用。我基本上保持一切在Proguard规则。

  1. -dontobfuscate
  2. -dontoptimize
  3. -dontshrink
  4. -addconfigurationdebugging
  5. -dontpreverify
  6. -dontwarn ***
  7. -keep class *** { *** *; <methods>; <init>(...);}
  8. -keep interface *** { *** *; }
  9. -keep @interface *** { *** *; }
  10. -keep enum *** { *** *; }
  11. -keepattributes ***
  12. -optimizations !code/simplification/arithmetic,!code/simplification/cast,!code/allocation/variable,!field/*,!class/merging/*,!method/removal/*,!class/unboxing/enum

字符串
是的,这可能不是Proguard的最佳用途,但即使这样也会导致以下崩溃

  1. 11-17 20:23:17.168 22976 23157 E AndroidRuntime: java.lang.AssertionError: Built-in class kotlin.Any is not found
  2. 11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.builtins.KotlinBuiltIns$3.invoke(KotlinBuiltIns.java:113)
  3. 11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.builtins.KotlinBuiltIns$3.invoke(KotlinBuiltIns.java:108)
  4. 11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.storage.LockBasedStorageManager$MapBasedMemoizedFunction.invoke(LockBasedStorageManager.java:512)
  5. 11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.storage.LockBasedStorageManager$MapBasedMemoizedFunctionToNotNull.invoke(LockBasedStorageManager.java:587)
  6. 11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.builtins.KotlinBuiltIns.getBuiltInClassByName(KotlinBuiltIns.java:362)
  7. 11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.builtins.KotlinBuiltIns.getAny(KotlinBuiltIns.java:367)
  8. 11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.builtins.KotlinBuiltIns.getAnyType(KotlinBuiltIns.java:642)
  9. 11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.builtins.KotlinBuiltIns.getNullableAnyType(KotlinBuiltIns.java:647)
  10. 11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.builtins.KotlinBuiltIns.getDefaultBound(KotlinBuiltIns.java:652)
  11. 11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.descriptors.impl.TypeParameterDescriptorImpl.createWithDefaultBound(TypeParameterDescriptorImpl.java:56)
  12. 11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.descriptors.NotFoundClasses$MockClassDescriptor.<init>(NotFoundClasses.kt:55)
  13. 11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.descriptors.NotFoundClasses$classes$1.invoke(NotFoundClasses.kt:44)
  14. 11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.descriptors.NotFoundClasses$classes$1.invoke(NotFoundClasses.kt:22)
  15. 11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.storage.LockBasedStorageManager$MapBasedMemoizedFunction.invoke(LockBasedStorageManager.java:512)
  16. 11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.storage.LockBasedStorageManager$MapBasedMemoizedFunctionToNotNull.invoke(LockBasedStorageManager.java:587)
  17. 11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.descriptors.NotFoundClasses.getClass(NotFoundClasses.kt:92)
  18. 11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.serialization.deserialization.TypeDeserializer$typeConstructor$1.invoke(TypeDeserializer.kt:109)
  19. 11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.serialization.deserialization.TypeDeserializer.typeConstructor(TypeDeserializer.kt:113)
  20. 11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.serialization.deserialization.TypeDeserializer.simpleType(TypeDeserializer.kt:75)
  21. 11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.serialization.deserialization.TypeDeserializer.type(TypeDeserializer.kt:63)
  22. 11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.serialization.deserialization.MemberDeserializer.valueParameters(MemberDeserializer.kt:417)
  23. 11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.serialization.deserialization.MemberDeserializer.loadConstructor(MemberDeserializer.kt:342)
  24. 11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.serialization.deserialization.descriptors.DeserializedClassDescriptor.computePrimaryConstructor(DeserializedClassDescriptor.kt:122)
  25. 11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.serialization.deserialization.descriptors.DeserializedClassDescriptor.access$computePrimaryConstructor(DeserializedClassDescriptor.kt:34)
  26. 11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.serialization.deserialization.descriptors.DeserializedClassDescriptor$primaryConstructor$1.invoke(DeserializedClassDescriptor.kt:65)
  27. 11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.serialization.deserialization.descriptors.DeserializedClassDescriptor$primaryConstructor$1.invoke(DeserializedClassDescriptor.kt:34)
  28. 11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.storage.LockBasedStorageManager$LockBasedLazyValue.invoke(LockBasedStorageManager.java:355)
  29. 11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.serialization.deserialization.descriptors.DeserializedClassDescriptor.getUnsubstitutedPrimaryConstructor(DeserializedClassDescriptor.kt:126)
  30. 11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.serialization.deserialization.descriptors.DeserializedClassDescriptor.computeConstructors(DeserializedClassDescriptor.kt:129)
  31. 11-17 20:23:17.169 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.serialization.deserialization.descriptors.DeserializedClassDescriptor.access$computeConstructors(DeserializedClassDescriptor.kt:34)
  32. 11-17 20:23:17.169 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.serialization.deserialization.descriptors.DeserializedClassDescriptor$constructors$1.invoke(DeserializedClassDescriptor.kt:66)
  33. 11-17 20:23:17.169 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.serialization.deserialization.descriptors.DeserializedClassDescriptor$constructors$1.invoke(DeserializedClassDescriptor.kt:34)
  34. 11-17 20:23:17.169 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.storage.LockBasedStorageManager$LockBasedLazyValue.invoke(LockBasedStorageManager.java:355)
  35. 11-17 20:23:17.169 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.storage.LockBasedStorageManager$LockBasedNotNullLazyValue.invoke(LockBasedStorageManager.java:474)
  36. 11-17 20:23:17.169 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.serialization.deserialization.descriptors.DeserializedClassDescriptor.getConstructors(DeserializedClassDescriptor.kt:137)
  37. 11-17 20:23:17.169 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.KClassImpl.getConstructorDescriptors(KClassImpl.kt:200)
  38. 11-17 20:23:17.169 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.KClassImpl$Data$constructors$2.invoke(KClassImpl.kt:91)
  39. 11-17 20:23:17.169 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.KClassImpl$Data$constructors$2.invoke(KClassImpl.kt:44)
  40. 11-17 20:23:17.169 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.ReflectProperties$LazySoftVal.invoke(ReflectProperties.java:92)
  41. 11-17 20:23:17.169 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.ReflectProperties$Val.getValue(ReflectProperties.java:31)
  42. 11-17 20:23:17.169 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.KClassImpl$Data.getConstructors(Unknown Source:7)
  43. 11-17 20:23:17.169 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.KClassImpl.getConstructors(KClassImpl.kt:235)
  44. 11-17 20:23:17.169 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.ReflectJvmMapping.getKotlinFunction(ReflectJvmMapping.kt:144)
  45. 11-17 20:23:17.169 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.module.kotlin.KotlinNamesAnnotationIntrospector.findKotlinParameterName(KotlinNamesAnnotationIntrospector.kt:115)
  46. 11-17 20:23:17.169 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.module.kotlin.KotlinNamesAnnotationIntrospector.findImplicitPropertyName(KotlinNamesAnnotationIntrospector.kt:31)
  47. 11-17 20:23:17.169 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.databind.introspect.AnnotationIntrospectorPair.findImplicitPropertyName(AnnotationIntrospectorPair.java:490)
  48. 11-17 20:23:17.169 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector._addCreatorParam(POJOPropertiesCollector.java:485)
  49. 11-17 20:23:17.169 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector._addCreators(POJOPropertiesCollector.java:465)
  50. 11-17 20:23:17.169 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector.collectAll(POJOPropertiesCollector.java:313)
  51. 11-17 20:23:17.169 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector.getPropertyMap(POJOPropertiesCollector.java:287)
  52. 11-17 20:23:17.169 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector.getProperties(POJOPropertiesCollector.java:170)
  53. 11-17 20:23:17.169 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.databind.introspect.BasicBeanDescription._properties(BasicBeanDescription.java:164)
  54. 11-17 20:23:17.169 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.databind.introspect.BasicBeanDescription.findProperties(BasicBeanDescription.java:239)
  55. 11-17 20:23:17.169 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.databind.deser.BasicDeserializerFactory._findCreatorsFromProperties(BasicDeserializerFactory.java:292)
  56. 11-17 20:23:17.169 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.databind.deser.BasicDeserializerFactory._constructDefaultValueInstantiator(BasicDeserializerFactory.java:276)
  57. 11-17 20:23:17.169 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.databind.deser.BasicDeserializerFactory.findValueInstantiator(BasicDeserializerFactory.java:224)
  58. 11-17 20:23:17.169 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.databind.deser.BeanDeserializerFactory.buildBeanDeserializer(BeanDeserializerFactory.java:220)
  59. 11-17 20:23:17.169 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.databind.deser.BeanDeserializerFactory.createBeanDeserializer(BeanDeserializerFactory.java:143)
  60. 11-17 20:23:17.169 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.databind.deser.DeserializerCache._createDeserializer2(DeserializerCache.java:414)
  61. 11-17 20:23:17.169 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.databind.deser.DeserializerCache._createDeserializer(DeserializerCache.java:349)
  62. 11-17 20:23:17.169 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:264)
  63. 11-17 20:23:17.169 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializerCache.java:244)
  64. 11-17 20:23:17.172 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(DeserializerCache.java:142)
  65. 11-17 20:23:17.172 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.databind.DeserializationContext.findRootValueDeserializer(DeserializationContext.java:479)
  66. 11-17 20:23:17.172 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.databind.ObjectMapper._findRootDeserializer(ObjectMapper.java:4405)
  67. 11-17 20:23:17.172 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4214)
  68. 11-17 20:23:17.172 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3214)
  69. 11-17 20:23:17.172 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3182)
  70. 11-17 20:23:17.172 22976 23157 E AndroidRuntime: at
  71. ...


在build.gradle中没有排除任何与Kotlin相关的文件。包含std库,因为禁用Proguard时没有问题
目前使用Proguard 7.1.1,与6.0.3相同的问题。任何帮助是感激的

neskvpey

neskvpey1#

这不是最好的解决方案,但你可以测试下面的代码为自己与调查一步一步

  1. -dontskipnonpubliclibraryclassmembers
  2. -dontshrink
  3. -dontoptimize
  4. -printmapping build/libs/output/obfuscation.map
  5. -keepattributes
  6. -adaptclassstrings
  7. -dontnote
  8. -dontwarn
  9. # Keep Android classes
  10. -keep class ** extends android.** {
  11. <fields>;
  12. <methods>;
  13. }
  14. # Keep serializable classes & fields
  15. -keep class ** extends java.io.Serializable {
  16. <fields>;
  17. }
  18. # Keep - Applications. Keep all application classes, along with their 'main'
  19. # methods.
  20. -keepclasseswithmembers public class * {
  21. public static void main(java.lang.String[]);
  22. }
  23. # Also keep - Enumerations. Keep the special static methods that are required in
  24. # enumeration classes.
  25. -keepclassmembers enum * {
  26. public static **[] values();
  27. public static ** valueOf(java.lang.String);
  28. }
  29. -assumenosideeffects class android.util.Log {
  30. public static *** d(...);
  31. public static *** e(...);
  32. public static *** w(...);
  33. }

字符串

展开查看全部

相关问题