Как получить класс / интерфейс, используемый сторонней зависимостью, когда он не используется?
Итак, у меня есть это конкретное предупреждение, я использую обессахаривание, и появляется это предупреждение. одна из моих сторонних зависимостей использует это, но поскольку его нельзя найти, приложение вылетает. Я обнаружил, что, возможно, при обессахаривании нет
Bifunction
класс так
jackson
не могу его преобразовать. Я должен сказать, что он выдает ошибку только на Android-API 23 Marshmallow и отлично работает на Android-API>23 устройствах.
Код:
List<Message> list;
list = mapper.convertValue(mapList, new TypeReference<List<Message>>() {});
Предупреждение появляется, когда я пытаюсь создать приложение с включенным Desugaring:
Warning in C:\Users\Keivan Shirkoubian\.gradle\caches\modules-2\files-2.1\com.android.tools\desugar_jdk_libs\1.0.9\359e5e4f4784f23beb30ba454b41f6f992e58481\desugar_jdk_libs-1.0.9.jar:java/util/concurrent/ConcurrentHashMap.class:
Type `j$.$r8$wrapper$java$util$function$BiFunction$-V-WRP` was not found, it is required for default or static interface methods desugaring of `java.lang.Object java.util.concurrent.ConcurrentHashMap.compute(java.lang.Object, $-vivified-$.java.util.function.BiFunction)`
Это журнал сбоев, он появляется, когда я пытаюсь сопоставить свой mapList с другим списком (List).
W/Java7Support: Unable to load JDK7 types (annotations, java.nio.file.Path): no Java7 support added
W/System.err: io.reactivex.exceptions.UndeliverableException: The exception could not be delivered to the consumer because it has already canceled/disposed the flow or the exception has nowhere to go to begin with. Further reading: https://github.com/ReactiveX/RxJava/wiki/What's-different-in-2.0#error-handling | java.lang.NoClassDefFoundError: java.util.function.BiFunction
at io.reactivex.plugins.RxJavaPlugins.onError(RxJavaPlugins.java:367)
at io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run(HandlerScheduler.java:126)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:7331)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Caused by: java.lang.NoClassDefFoundError: java.util.function.BiFunction
at libcore.reflect.InternalNames.getClass(InternalNames.java:55)
at java.lang.Class.getDexCacheType(Class.java:476)
at java.lang.reflect.AbstractMethod.getParameterTypes(AbstractMethod.java:166)
at java.lang.reflect.Method.getParameterTypes(Method.java:170)
at java.lang.Class.getDeclaredMethods(Class.java:679)
at com.fasterxml.jackson.databind.util.ClassUtil.getClassMethods(ClassUtil.java:1124)
at com.fasterxml.jackson.databind.introspect.AnnotatedMethodCollector._addMemberMethods(AnnotatedMethodCollector.java:110)
at com.fasterxml.jackson.databind.introspect.AnnotatedMethodCollector.collect(AnnotatedMethodCollector.java:42)
at com.fasterxml.jackson.databind.introspect.AnnotatedMethodCollector.collectMethods(AnnotatedMethodCollector.java:33)
at com.fasterxml.jackson.databind.introspect.AnnotatedClass._methods(AnnotatedClass.java:365)
at com.fasterxml.jackson.databind.introspect.AnnotatedClass.memberMethods(AnnotatedClass.java:305)
at com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector._addMethods(POJOPropertiesCollector.java:525)
at com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector.collectAll(POJOPropertiesCollector.java:309)
at com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector.getJsonValueAccessor(POJOPropertiesCollector.java:196)
at com.fasterxml.jackson.databind.introspect.BasicBeanDescription.findJsonValueAccessor(BasicBeanDescription.java:252)
at com.fasterxml.jackson.databind.ser.BasicSerializerFactory.findSerializerByAnnotations(BasicSerializerFactory.java:346)
at com.fasterxml.jackson.databind.ser.BasicSerializerFactory.buildMapSerializer(BasicSerializerFactory.java:767)
at com.fasterxml.jackson.databind.ser.BasicSerializerFactory.buildContainerSerializer(BasicSerializerFactory.java:568)
at com.fasterxml.jackson.databind.ser.BeanSerializerFactory._createSerializer2(BeanSerializerFactory.java:196)
at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.createSerializer(BeanSerializerFactory.java:165)
at com.fasterxml.jackson.databind.SerializerProvider._createUntypedSerializer(SerializerProvider.java:1388)
at com.fasterxml.jackson.databind.SerializerProvider._createAndCacheUntypedSerializer(SerializerProvider.java:1336)
at com.fasterxml.jackson.databind.SerializerProvider.findValueSerializer(SerializerProvider.java:510)
at com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap.findAndAddSecondarySerializer(PropertySerializerMap.java:90)
at com.fasterxml.jackson.databind.ser.std.AsArraySerializerBase._findAndAddDynamic(AsArraySerializerBase.java:306)
at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:115)
at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:79)
at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:18)
at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:480)
at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:319)
at com.fasterxml.jackson.databind.ObjectMapper._convert(ObjectMapper.java:3728)
at com.fasterxml.jackson.databind.ObjectMapper.convertValue(ObjectMapper.java:3678)
at sanay.co.esn.chat_refactor.core.ChatRefactorView.fetchDataFromResponseGroupContentsFromUnreadNew(ChatRefactorView.java:373)
at sanay.co.esn.chat_refactor.core.ChatRefactorView.fetchGroupContentsFromUnReadNew(ChatRefactorView.java:362)
at sanay.co.esn.chat_refactor.core.ChatRefactorView.configResponseGetGroupContentsFromUnRead(ChatRefactorView.java:344)
at sanay.co.esn.chat_refactor.core.ChatRefactorView.configGetGroupContentsFromUnRead(ChatRefactorView.java:329)
at sanay.co.esn.chat_refactor.core.ChatRefactorView.access$100(ChatRefactorView.java:60)
at sanay.co.esn.chat_refactor.core.ChatRefactorView$1.onNext(ChatRefactorView.java:165)
at sanay.co.esn.chat_refactor.core.ChatRefactorView$1.onNext(ChatRefactorView.java:160)
at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.drainNormal(ObservableObserveOn.java:201)
at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.run(ObservableObserveOn.java:255)
at io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run(HandlerScheduler.java:124)
... 7 more
Caused by: java.lang.ClassNotFoundException: Didn't find class "java.util.function.BiFunction" on path: DexPathList[[zip file "/data/app/sanay.co.esn-2/base.apk"],nativeLibraryDirectories=[/data/app/sanay.co.esn-2/lib/arm, /data/app/sanay.co.esn-2/base.apk!/lib/armeabi-v7a, /vendor/lib, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
at libcore.reflect.InternalNames.getClass(InternalNames.java:53)
... 48 more
Suppressed: java.lang.ClassNotFoundException: java.util.function.BiFunction
at java.lang.Class.classForName(Native Method)
at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
... 50 more
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available
1 ответ
BiFunction из пакета java.util.function требует, чтобы модули вашего проекта были совместимы с Java 8.
Попробуйте обновить свой плагин Gradle до версии 3.0.0 (или выше) и добавить поддержку языковых функций Java 8. Проверьте ссылку на документы :
Если вы уже сделали это, поделитесь своими файлами конфигурации Gradle.