我看到一个崩溃在运行时,当Proguard是启用。我基本上保持一切在Proguard规则。
-dontobfuscate
-dontoptimize
-dontshrink
-addconfigurationdebugging
-dontpreverify
-dontwarn ***
-keep class *** { *** *; <methods>; <init>(...);}
-keep interface *** { *** *; }
-keep @interface *** { *** *; }
-keep enum *** { *** *; }
-keepattributes ***
-optimizations !code/simplification/arithmetic,!code/simplification/cast,!code/allocation/variable,!field/*,!class/merging/*,!method/removal/*,!class/unboxing/enum
字符串
是的,这可能不是Proguard的最佳用途,但即使这样也会导致以下崩溃
11-17 20:23:17.168 22976 23157 E AndroidRuntime: java.lang.AssertionError: Built-in class kotlin.Any is not found
11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.builtins.KotlinBuiltIns$3.invoke(KotlinBuiltIns.java:113)
11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.builtins.KotlinBuiltIns$3.invoke(KotlinBuiltIns.java:108)
11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.storage.LockBasedStorageManager$MapBasedMemoizedFunction.invoke(LockBasedStorageManager.java:512)
11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.storage.LockBasedStorageManager$MapBasedMemoizedFunctionToNotNull.invoke(LockBasedStorageManager.java:587)
11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.builtins.KotlinBuiltIns.getBuiltInClassByName(KotlinBuiltIns.java:362)
11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.builtins.KotlinBuiltIns.getAny(KotlinBuiltIns.java:367)
11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.builtins.KotlinBuiltIns.getAnyType(KotlinBuiltIns.java:642)
11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.builtins.KotlinBuiltIns.getNullableAnyType(KotlinBuiltIns.java:647)
11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.builtins.KotlinBuiltIns.getDefaultBound(KotlinBuiltIns.java:652)
11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.descriptors.impl.TypeParameterDescriptorImpl.createWithDefaultBound(TypeParameterDescriptorImpl.java:56)
11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.descriptors.NotFoundClasses$MockClassDescriptor.<init>(NotFoundClasses.kt:55)
11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.descriptors.NotFoundClasses$classes$1.invoke(NotFoundClasses.kt:44)
11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.descriptors.NotFoundClasses$classes$1.invoke(NotFoundClasses.kt:22)
11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.storage.LockBasedStorageManager$MapBasedMemoizedFunction.invoke(LockBasedStorageManager.java:512)
11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.storage.LockBasedStorageManager$MapBasedMemoizedFunctionToNotNull.invoke(LockBasedStorageManager.java:587)
11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.descriptors.NotFoundClasses.getClass(NotFoundClasses.kt:92)
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)
11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.serialization.deserialization.TypeDeserializer.typeConstructor(TypeDeserializer.kt:113)
11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.serialization.deserialization.TypeDeserializer.simpleType(TypeDeserializer.kt:75)
11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.serialization.deserialization.TypeDeserializer.type(TypeDeserializer.kt:63)
11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.serialization.deserialization.MemberDeserializer.valueParameters(MemberDeserializer.kt:417)
11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.serialization.deserialization.MemberDeserializer.loadConstructor(MemberDeserializer.kt:342)
11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.serialization.deserialization.descriptors.DeserializedClassDescriptor.computePrimaryConstructor(DeserializedClassDescriptor.kt:122)
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)
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)
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)
11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.storage.LockBasedStorageManager$LockBasedLazyValue.invoke(LockBasedStorageManager.java:355)
11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.serialization.deserialization.descriptors.DeserializedClassDescriptor.getUnsubstitutedPrimaryConstructor(DeserializedClassDescriptor.kt:126)
11-17 20:23:17.168 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.serialization.deserialization.descriptors.DeserializedClassDescriptor.computeConstructors(DeserializedClassDescriptor.kt:129)
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)
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)
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)
11-17 20:23:17.169 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.storage.LockBasedStorageManager$LockBasedLazyValue.invoke(LockBasedStorageManager.java:355)
11-17 20:23:17.169 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.storage.LockBasedStorageManager$LockBasedNotNullLazyValue.invoke(LockBasedStorageManager.java:474)
11-17 20:23:17.169 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.impl.serialization.deserialization.descriptors.DeserializedClassDescriptor.getConstructors(DeserializedClassDescriptor.kt:137)
11-17 20:23:17.169 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.KClassImpl.getConstructorDescriptors(KClassImpl.kt:200)
11-17 20:23:17.169 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.KClassImpl$Data$constructors$2.invoke(KClassImpl.kt:91)
11-17 20:23:17.169 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.KClassImpl$Data$constructors$2.invoke(KClassImpl.kt:44)
11-17 20:23:17.169 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.ReflectProperties$LazySoftVal.invoke(ReflectProperties.java:92)
11-17 20:23:17.169 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.ReflectProperties$Val.getValue(ReflectProperties.java:31)
11-17 20:23:17.169 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.KClassImpl$Data.getConstructors(Unknown Source:7)
11-17 20:23:17.169 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.internal.KClassImpl.getConstructors(KClassImpl.kt:235)
11-17 20:23:17.169 22976 23157 E AndroidRuntime: at kotlin.reflect.jvm.ReflectJvmMapping.getKotlinFunction(ReflectJvmMapping.kt:144)
11-17 20:23:17.169 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.module.kotlin.KotlinNamesAnnotationIntrospector.findKotlinParameterName(KotlinNamesAnnotationIntrospector.kt:115)
11-17 20:23:17.169 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.module.kotlin.KotlinNamesAnnotationIntrospector.findImplicitPropertyName(KotlinNamesAnnotationIntrospector.kt:31)
11-17 20:23:17.169 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.databind.introspect.AnnotationIntrospectorPair.findImplicitPropertyName(AnnotationIntrospectorPair.java:490)
11-17 20:23:17.169 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector._addCreatorParam(POJOPropertiesCollector.java:485)
11-17 20:23:17.169 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector._addCreators(POJOPropertiesCollector.java:465)
11-17 20:23:17.169 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector.collectAll(POJOPropertiesCollector.java:313)
11-17 20:23:17.169 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector.getPropertyMap(POJOPropertiesCollector.java:287)
11-17 20:23:17.169 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector.getProperties(POJOPropertiesCollector.java:170)
11-17 20:23:17.169 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.databind.introspect.BasicBeanDescription._properties(BasicBeanDescription.java:164)
11-17 20:23:17.169 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.databind.introspect.BasicBeanDescription.findProperties(BasicBeanDescription.java:239)
11-17 20:23:17.169 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.databind.deser.BasicDeserializerFactory._findCreatorsFromProperties(BasicDeserializerFactory.java:292)
11-17 20:23:17.169 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.databind.deser.BasicDeserializerFactory._constructDefaultValueInstantiator(BasicDeserializerFactory.java:276)
11-17 20:23:17.169 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.databind.deser.BasicDeserializerFactory.findValueInstantiator(BasicDeserializerFactory.java:224)
11-17 20:23:17.169 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.databind.deser.BeanDeserializerFactory.buildBeanDeserializer(BeanDeserializerFactory.java:220)
11-17 20:23:17.169 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.databind.deser.BeanDeserializerFactory.createBeanDeserializer(BeanDeserializerFactory.java:143)
11-17 20:23:17.169 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.databind.deser.DeserializerCache._createDeserializer2(DeserializerCache.java:414)
11-17 20:23:17.169 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.databind.deser.DeserializerCache._createDeserializer(DeserializerCache.java:349)
11-17 20:23:17.169 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:264)
11-17 20:23:17.169 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializerCache.java:244)
11-17 20:23:17.172 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(DeserializerCache.java:142)
11-17 20:23:17.172 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.databind.DeserializationContext.findRootValueDeserializer(DeserializationContext.java:479)
11-17 20:23:17.172 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.databind.ObjectMapper._findRootDeserializer(ObjectMapper.java:4405)
11-17 20:23:17.172 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4214)
11-17 20:23:17.172 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3214)
11-17 20:23:17.172 22976 23157 E AndroidRuntime: at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3182)
11-17 20:23:17.172 22976 23157 E AndroidRuntime: at
...
型
在build.gradle中没有排除任何与Kotlin相关的文件。包含std库,因为禁用Proguard时没有问题
目前使用Proguard 7.1.1,与6.0.3相同的问题。任何帮助是感激的
1条答案
按热度按时间neskvpey1#
这不是最好的解决方案,但你可以测试下面的代码为自己与调查一步一步
字符串