【问题标题】:Android Studio:Warning when generate Signed Apk in release mode Warning:com.fasterxml.jackson.databindAndroid Studio:在发布模式下生成签名 Apk 时发出警告警告:com.fasterxml.jackson.databind
【发布时间】:2017-06-29 13:27:07
【问题描述】:

我在一个Android项目中使用jackson-json依赖,在release模式下生成Signed Apk,出现如下错误:

Warning:com.fasterxml.jackson.databind.ext.DOMSerializer: can't find referenced class org.w3c.dom.bootstrap.DOMImplementationRegistry
Warning:com.fasterxml.jackson.databind.ext.Java7SupportImpl: can't find referenced class java.beans.Transient
Warning:com.fasterxml.jackson.databind.ext.Java7SupportImpl: can't find referenced class java.beans.ConstructorProperties
Warning:com.fasterxml.jackson.databind.ext.Java7SupportImpl: can't find referenced class java.nio.file.Path
Warning:com.fasterxml.jackson.databind.ext.Java7SupportImpl: can't find referenced class java.beans.Transient
Warning:com.fasterxml.jackson.databind.ext.Java7SupportImpl: can't find referenced class java.beans.ConstructorProperties
Warning:com.fasterxml.jackson.databind.ext.Java7SupportImpl: can't find referenced class java.beans.Transient
Warning:com.fasterxml.jackson.databind.ext.Java7SupportImpl: can't find referenced class java.beans.ConstructorProperties
Warning:com.fasterxml.jackson.databind.ext.Java7SupportImpl: can't find referenced class java.beans.Transient
Warning:com.fasterxml.jackson.databind.ext.Java7SupportImpl: can't find referenced class java.beans.ConstructorProperties
Warning:com.fasterxml.jackson.databind.ext.NioPathDeserializer: can't find referenced class java.nio.file.Path
Warning:com.fasterxml.jackson.databind.ext.NioPathDeserializer: can't find referenced class java.nio.file.Paths
Warning:com.fasterxml.jackson.databind.ext.NioPathDeserializer: can't find referenced class java.nio.file.Path
Warning:com.fasterxml.jackson.databind.ext.NioPathSerializer: can't find referenced class java.nio.file.Path
Warning:there were 26 unresolved references to classes or interfaces.
Warning:Exception while processing task java.io.IOException: Please correct the above warnings first.


Error:Execution failed for task':app:transformClassesAndResourcesWithProguardForRelease'.> Job failed, see logs for details
Information:BUILD FAILED
Information:Total time: 17.808 secs
Information:1 error
Information:16 warnings

【问题讨论】:

    标签: android jackson apk


    【解决方案1】:

    基于 this answerthis answer,您可以使用以下命令忽略 proguard 文件中的警告:

    -keepnames class com.fasterxml.jackson.databind.** { *; }
    -dontwarn com.fasterxml.jackson.databind.**
    

    编辑: 要修复以下 cmets 中的新运行时错误,请添加:

     -keepattributes InnerClasses
    

    【讨论】:

    • 谢谢@A.A. ,它成功生成了签名的 APK,但是当我运行签名的 apk 应用程序时,它给出了以下错误Exception java.lang.RuntimeException: An error occured while executing doInBackground() android.os.AsyncTask$3.done (AsyncTask.java:300) java.util.concurrent.FutureTask.finishCompletion (FutureTask.java:355) java.util.concurrent.FutureTask.setException (FutureTask.java:222) java.util.concurrent.FutureTask.run (FutureTask.java:242) java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1112) java.util.concurrent.ThreadPoolExecutor$Worker.run
    • 继续。也流动错误Caused by java.lang.NoSuchFieldError: PUBLIC_ONLY java.lang.Class.getDeclaredAnnotation (Class.java) java.lang.Class.getAnnotation (Class.java:290) com.fasterxml.jackson.databind.introspect.VisibilityChecker$Std.<clinit> () com.fasterxml.jackson.databind.ObjectMapper.<clinit> () com.doctorstay.a.b.doInBackground () android.os.AsyncTask$2.call (AsyncTask.java:288) java.util.concurrent.FutureTask.run (FutureTask.java:237) java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1112)
    • @Jignesh-Bhadani 试试-keepattributes InnerClasses
    • 上述错误已解决,但数据不是来自 API,它显示流动的 Toast 消息找不到类 com.pakagename.et 的序列化程序,也没有发现要创建的属性..
    • @Jignesh-Bhadani 请参阅here 了解可能的解决方案
    猜你喜欢
    • 1970-01-01
    • 2023-04-04
    • 2019-08-16
    • 2014-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多