Я использовал htmlunit-2.15.jar в своем проекте Android. Когда я пытаюсь создать подписанный apk, он выдает некоторые ошибки proguard
Caused by: java.io.IOException: java.lang.IllegalArgumentException: Can't find common super class of [com/gargoylesoftware/htmlunit/activex/javascript/msxml/MSXMLScriptable] (with 2 known super classes) and [java/lang/Class] (with 2 known super classes)
at com.android.build.gradle.internal.transforms.ProGuardTransform.doMinification(ProGuardTransform.java:259)
Caused by: java.lang.IllegalArgumentException: Can't find common super class of [com/gargoylesoftware/htmlunit/activex/javascript/msxml/MSXMLScriptable] (with 2 known super classes) and [java/lang/Class] (with 2 known super classes) at proguard.evaluation.value.TypedReferenceValue.findCommonClass(TypedReferenceValue.java:450)
Не могли бы вы помочь мне решить эту проблему, поскольку мой проект находится в стадии разработки, мне нужно немедленно исправить и выпустить сборку. Проблема в прогаурде при переходе с gradle 2.3.3 на 3.0.1 в студии android.
Я добавил эти 2 строчки в proguard-rules.pro
-dontwarn com.gargoylesoftware.htmlunit.**
-keep class com.gargoylesoftware.htmlunit.** { *; }
-dontwarn netscape.javascript.**
-keep class netscape.javascript.** { *; }
Yaah проверил, это не решило мою проблему
Добавьте этот код в свою зависимость, он сработал для меня. конфигурации {все группы * .exclude: 'com.android.support', модуль: 'support-v13'}
Codelover, можете ли вы прояснить это?
Думаю, ваша ошибка возникает из-за файла jar. добавьте этот фрагмент кода в свою зависимость, которая находится в файле Build.gradle приложения. конфигурации {все группы * .exclude: 'com.android.support', модуль: 'support-v13'}
Мой файл jar не содержит ничего, связанного с com.android.support & support-v13
опубликуйте свою зависимость
зависимости {реализация fileTree (include: ['* .jar'], dir: 'libs') реализация 'com.android.support:appcompat-v7:27.1.1' implementation 'com.android.support.constraint: constraint-layout : 1.0.2 'реализация' com.android.support:design:27.1.1 'реализация' com.android.support:support-v4:27.1.1 'testImplementation' junit: junit: 4.12 'androidTestImplementation' com.android.support .test: runner: 1.0.1 'androidTestImplementation' com.android.support.test.espresso: espresso-core: 3.0.1 'файлы реализации (' libs / htmlunit-2.30.jar ')}
Codelover, я внес изменения, это мне не помогло




Спасибо, я отсортировал решение и исправил его, я просто добавил библиотеку
implementation 'net.sourceforge.htmlunit:htmlunit-core-js:2.5'
в файле app build.gradle
В этой библиотеке есть все недостающие классы в этом htmlunit.jar.
А еще добавил эти 3 строчки в свой progaurd файл.
-keep class com.gargoylesoftware.htmlunit.html.DomNode { *; }
-keep class com.gargoylesoftware.htmlunit.javascript.SimpleScriptable { *; }
-keep class net.sourceforge.htmlunit.corejs.javascript.** { *; }
Вышеупомянутые изменения устранили мою проблему, и теперь я могу сгенерировать подписанный файл apk.
Вы проверяли эту ссылку ?? [1]: stackoverflow.com/questions/43571266/…