【问题标题】:Android app crash on setting minifyEnabled trueAndroid 应用程序在设置 minifyEnabled true 时崩溃
【发布时间】:2020-02-10 09:55:50
【问题描述】:

启用 minifyEnabled true 时应用程序崩溃。当我将其设置为错误时,应用程序开始正常工作。我需要在我的 pro-guard 文件中添加一些内容吗?我无法弄清楚导致应用程序崩溃的原因。

Gradle 代码如下:

debug {
            manifestPlaceholders = [crashlyticsApiKey: '', mapApiKey: '']
            // Enables code shrinking, obfuscation, and optimization for only
            debuggable true
            // your project's release build type.
            minifyEnabled true
            // Enables resource shrinking, which is performed by the
            // Android Gradle plugin.
            shrinkResources true

            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'

            buildConfigField "String", "BASE_URL", '"http://"'
            signingConfig signingConfigs.debug
        }

Logcat 输出

java.lang.RuntimeException: An error occurred while executing doInBackground()
        at android.os.AsyncTask$3.done(AsyncTask.java:309)
        at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354)
        at java.util.concurrent.FutureTask.setException(FutureTask.java:223)
        at java.util.concurrent.FutureTask.run(FutureTask.java:242)
        at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
        at java.lang.Thread.run(Thread.java:818)
     Caused by: java.lang.ExceptionInInitializerError
        at l.b.g.f$a.<init>(:372)
        at l.b.g.f.<init>(:19)
        at l.b.h.m.a(:32)
        at l.b.h.m.b(:42)
        at l.b.h.b.b(:56)
        at l.b.h.g.a(:32)
        at l.b.f.a.a(:135)
        at l.b.f.b$d.f(:747)
        at l.b.f.b.b(:250)
        at d.k.a.i.g.a(:36)
        at d.k.a.i.g.doInBackground(:17)
        at android.os.AsyncTask$2.call(AsyncTask.java:295)
        at java.util.concurrent.FutureTask.run(FutureTask.java:237)
        at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234) 
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 
        at java.lang.Thread.run(Thread.java:818) 
     Caused by: java.lang.IllegalStateException: Could not read resource entities-xhtml.properties. Make sure you copy resources for l.b.g.i
        at l.b.g.i.b(:301)
        at l.b.g.i.a(:25)
        at l.b.g.i$b.<init>(:53)
        at l.b.g.i$b.<clinit>(:34)
        at l.b.g.f$a.<init>(:372) 
        at l.b.g.f.<init>(:19) 
        at l.b.h.m.a(:32) 
        at l.b.h.m.b(:42) 
        at l.b.h.b.b(:56) 
        at l.b.h.g.a(:32) 
        at l.b.f.a.a(:135) 
        at l.b.f.b$d.f(:747) 
        at l.b.f.b.b(:250) 
        at d.k.a.i.g.a(:36) 
        at d.k.a.i.g.doInBackground(:17) 
        at android.os.AsyncTask$2.call(AsyncTask.java:295) 
        at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
        at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234) 
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 
        at java.lang.Thread.run(Thread.java:818) 
02-10 15:19:58.687 17254-20516/? E/cjle: *~*~*~ Channel {0} was not shutdown properly!!! ~*~*~*
        Make sure to call shutdown()/shutdownNow() and wait until awaitTermination() returns true.
02-10 15:20:25.416 17254-28037/? E/WakeLock: GCM_HB_ALARM release without a matched acquire!

请告知我的代码有什么问题

谢谢

【问题讨论】:

标签: android proguard


【解决方案1】:

错误堆栈表明: 原因:java.lang.IllegalStateException:无法读取资源实体-xhtml.properties。确保为 l.b.g.i 复制资源

我认为这是因为资源/类 l.b.g.i 被 ProGuard 排除在外。您可能希望使用 mappings.txt 文件(包含实际类/方法名称与其由 proGuard 生成的随机名称之间的映射)来解码实际资源名称,然后强制 Proguard 保留它,类似于此示例 https://stackoverflow.com/a/5866755/1992013 希望这有帮助!

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-11-16
  • 2017-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-04
  • 2016-05-05
相关资源
最近更新 更多