Android ClassLookupException:如果使用不带proguard的shrinker,则类引用无效
我在我的应用程序中使用了JEXL库,而新的Android类shrinker似乎无法处理它 这是我的依赖:Android ClassLookupException:如果使用不带proguard的shrinker,则类引用无效,android,android-gradle-plugin,android-proguard,jexl,Android,Android Gradle Plugin,Android Proguard,Jexl,我在我的应用程序中使用了JEXL库,而新的Android类shrinker似乎无法处理它 这是我的依赖: compile 'org.apache.commons:commons-jexl:2.1.1' 我的生成类型定义如下: debug { versionNameSuffix "-dev" minifyEnabled true useProguard false proguardFiles getDefaultProgua
compile 'org.apache.commons:commons-jexl:2.1.1'
我的生成类型定义如下:
debug {
versionNameSuffix "-dev"
minifyEnabled true
useProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
当我尝试构建它时,我会遇到以下错误:
What went wrong: Execution failed for task ':app:transformClassesWithNewClassShrinkerForDebug'.
com.android.build.gradle.shrinker.ClassLookupException: Invalid class reference: javax/script/AbstractScriptEngine
尽管如果启用useProguard选项或同时将minifyEnabled和useProguard设置为false,则生成时不会出现任何问题
我知道JEXL内部使用的javax.script在Android上是不可用的,但是我使用的部分工作得很好,所以我使用这个库没有问题,除了这个。Lint也因此引发了InvalidPackage类型的错误,但它很容易被禁用,并且不会影响构建过程
有没有可能让新的shrinker忽略它,然后像Lint那样继续下一步呢?JEXL库引用了javax.script.AbstractScriptEngine和许多其他不属于Android运行时(Android.jar)的类,因此ProGuard警告说有些东西可能被破坏了。如果您确信您的应用程序可以正常工作,您可以在proguard-android.txt中指定下面的行
-dontwarn javax.script.**
-dontwarn org.apache.commons.logging.**
-dontwarn java.beans.**
现在,大多数警告都消失了,但经过大量搜索,我仍然不知道如何修复最后一个警告:
[proguard] Warning: org.apache.commons.jexl3.scripting.JexlScriptEngine: can't find referenced field 'javax.script.ScriptContext context' in class org.apache.commons.jexl3.scripting.JexlScriptEngine
JEXL库引用了javax.script.AbstractScriptEngine和许多其他不属于Android运行时(Android.jar)的类,因此ProGuard警告说有些东西可能被破坏了。如果您确信您的应用程序可以正常工作,您可以在proguard-android.txt中指定下面的行
-dontwarn javax.script.**
-dontwarn org.apache.commons.logging.**
-dontwarn java.beans.**
现在,大多数警告都消失了,但经过大量搜索,我仍然不知道如何修复最后一个警告:
[proguard] Warning: org.apache.commons.jexl3.scripting.JexlScriptEngine: can't find referenced field 'javax.script.ScriptContext context' in class org.apache.commons.jexl3.scripting.JexlScriptEngine
我在不同的图书馆面临同样的问题。你找到解决办法了吗?我在不同的图书馆面临同样的问题。你找到解决办法了吗?