java - java.lang.NullPointerException:当proguard启用时名称为空
问题描述
当我java.lang.NullPointerException: name is null
在调试模式下启用 proguard 时,当我在没有 proguard 的情况下使用时,我的应用程序在调试 mmode 中运行良好。这是我用来启用 proguard 的片段
debug{
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
这是我得到的错误日志
java.lang.NullPointerException: name is null
at android.content.res.Resources.getIdentifier(Resources.java:3708)
at com.byteapp.postearnmoney.b.a.a(Unknown Source)
at com.byteapp.postearnmoney.b.a.a(Unknown Source)
at android.support.v7.widget.RecyclerView$a.a(Unknown Source)
at android.support.v7.widget.RecyclerView$a.b(Unknown Source)
at android.support.v7.widget.RecyclerView$p.a(Unknown Source)
at android.support.v7.widget.RecyclerView$p.a(Unknown Source)
at android.support.v7.widget.RecyclerView$p.a(Unknown Source)
at android.support.v7.widget.RecyclerView$p.c(Unknown Source)
at android.support.v7.widget.LinearLayoutManager$c.a(Unknown Source)
at android.support.v7.widget.LinearLayoutManager.a(Unknown Source)
at android.support.v7.widget.LinearLayoutManager.a(Unknown Source)
at android.support.v7.widget.LinearLayoutManager.c(Unknown Source)
at android.support.v7.widget.RecyclerView.N(Unknown Source)
at android.support.v7.widget.RecyclerView.onMeasure(Unknown Source)
at android.view.View.measure(View.java:20236)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6333)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1464)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:747)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:629)
at android.view.View.measure(View.java:20236)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6333)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at android.view.View.measure(View.java:20236)
at android.support.v4.widget.DrawerLayout.onMeasure(Unknown Source)
at android.view.View.measure(View.java:20236)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6333)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1464)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:747)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:629)
at android.view.View.measure(View.java:20236)
at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:716)
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:462)
at android.view.View.measure(View.java:20236)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6333)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at android.support.v7.widget.ContentFrameLayout.onMeasure(Unknown Source)
at android.view.View.measure(View.java:20236)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6333)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1464)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:747)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:629)
at android.view.View.measure(View.java:20236)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6333)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at android.view.View.measure(View.java:20236)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6333)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1464)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:747)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:629)
at android.view.View.measure(View.java:20236)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6333)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at com.android.internal.policy.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:3140)
at android.view.View.measure(View.java:20236)
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2704)
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1656)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1948)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1544)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7607)
at android.view.Choreographer$CallbackRe
05-08 18:12:58.646 24073-24535/com.byteapp.postearnmoney E/File: fail readDirectory() errno=2
fail readDirectory() errno=2
05-08 18:13:04.586 24073-24453/com.byteapp.postearnmoney E/Ads: Fail to get isAdIdFakeForDebugLogging
java.io.IOException: java.util.concurrent.TimeoutException: Timed out waiting for the service connection
at com.google.android.gms.ads.identifier.a.a(:com.google.android.gms.dynamite_dynamitemodulesa@12529019@12.5.29 (040306-192802242):202)
at com.google.android.gms.ads.identifier.a.a(:com.google.android.gms.dynamite_dynamitemodulesa@12529019@12.5.29 (040306-192802242):20)
at com.google.android.gms.ads.identifier.a.b(:com.google.android.gms.dynamite_dynamitemodulesa@12529019@12.5.29 (040306-192802242):148)
at com.google.android.gms.ads.internal.util.d.a(:com.google.android.gms.dynamite_dynamitemodulesa@12529019@12.5.29 (040306-192802242):6)
at com.google.android.gms.ads.internal.util.b.run(:com.google.android.gms.dynamite_dynamitemodulesa@12529019@12.5.29 (040306-192802242):4)
at com.google.android.gms.ads.internal.util.m.call(:com.google.android.gms.dynamite_dynamitemodulesa@12529019@12.5.29 (040306-192802242):3)
at com.google.android.gms.ads.internal.util.n.run(:com.google.android.gms.dynamite_dynamitemodulesa@12529019@12.5.29 (040306-192802242):3)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
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.util.concurrent.TimeoutException: Timed out waiting for the service connection
at com.google.android.gms.ads.identifier.a.a(:com.google.android.gms.dynamite_dynamitemodulesa@12529019@12.5.29 (040306-192802242):189)
at com.google.android.gms.ads.identifier.a.a(:com.google.android.gms.dynamite_dynamitemodulesa@12529019@12.5.29 (040306-192802242):20)
at com.google.android.gms.ads.identifier.a.b(:com.google.android.gms.dynamite_dynamitemodulesa@12529019@12.5.29 (040306-192802242):148)
at com.google.android.gms.ads.internal.util.d.a(:com.google.android.gms.dynamite_dynamitemodulesa@12529019@12.5.29 (040306-192802242):6)
at com.google.android.gms.ads.internal.util.b.run(:com.google.android.gms.dynamite_dynamitemodulesa@12529019@12.5.29 (040306-192802242):4)
at com.google.android.gms.ads.internal.util.m.call(:com.google.android.gms.dynamite_dynamitemodulesa@12529019@12.5.29 (040306-192802242):3)
at com.google.android.gms.ads.internal.util.n.run(:com.google.android.gms.dynamite_dynamitemodulesa@12529019@12.5.29 (040306-192802242):3)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
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)
05-08 18:13:04.996 24073-24484/com.byteapp.postearnmoney E/Ads: Fail to get isAdIdFakeForDebugLogging
java.io.IOException: java.util.concurrent.TimeoutException: Timed out waiting for the service connection
at com.google.android.gms.ads.identifier.a.a(:com.google.android.gms.dynamite_dynamitemodulesa@12529019@12.5.29 (040306-192802242):202)
at com.google.android.gms.ads.identifier.a.a(:com.google.android.gms.dynamite_dynamitemodulesa@12529019@12.5.29 (040306-192802242):20)
at com.google.android.gms.ads.identifier.a.b(:com.google.android.gms.dynamite_dynamitemodulesa@12529019@12.5.29 (040306-192802242):148)
at com.google.android.gms.ads.internal.util.d.a(:com.google.android.gms.dynamite_dynamitemodulesa@12529019@12.5.29 (040306-192802242):6)
at com.google.android.gms.ads.internal.util.b.run(:com.google.android.gms.dynamite_dynamitemodulesa@12529019@12.5.29 (040306-192802242):4)
at com.google.android.gms.ads.internal.util.m.call(:com.google.android.gms.dynamite_dynamitemodulesa@12529019@12.5.29 (040306-192802242):3)
at com.google.android.gms.ads.internal.util.n.run(:com.google.android.gms.dynamite_dynamitemodulesa@12529019@12.5.29 (040306-192802242):3)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
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.util.concurrent.TimeoutException: Timed out waiting for the service connection
at com.google.android.gms.ads.identifier.a.a(:com.google.android.gms.dynamite_dynamitemodulesa@12529019@12.5.29 (040306-192802242):189)
at com.google.android.gms.ads.identifier.a.a(:com.google.android.gms.dynamite_dynamitemodulesa@12529019@12.5.29 (040306-192802242):20)
at com.google.android.gms.ads.identifier.a.b(:com.google.android.gms.dynamite_dynamitemodulesa@12529019@12.5.29 (040306-192802242):148)
at com.google.android.gms.ads.internal.util.d.a(:com.google.android.gms.dynamite_dynamitemodulesa@12529019@12.5.29 (040306-192802242):6)
at com.google.android.gms.ads.internal.util.b.run(:com.google.android.gms.dynamite_dynamitemodulesa@12529019@12.5.29 (040306-192802242):4)
at com.google.android.gms.ads.internal.util.m.call(:com.google.android.gms.dynamite_dynamitemodulesa@12529019@12.5.29 (040306-192802242):3)
at com.google.android.gms.ads.internal.util.n.run(:com.google.android.gms.dynamite_dynamitemodulesa@12529019@12.5.29 (040306-192802242):3)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
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)
05-08 18:13:05.276 24073-24495/com.byteapp.postearnmoney E/Ads: Fail to get isAdIdFakeForDebugLogging
java.io.IOException: java.util.concurrent.TimeoutException: Timed out waiting for the service connection
at com.google.android.gms.ads.identifier.a.a(:com.google.android.gms.dynamite_dynamitemodulesa@12529019@12.5.29 (040306-192802242):202)
at com.google.android.gms.ads.identifier.a.a(:com.google.android.gms.dynamite_dynamitemodulesa@12529019@12.5.29 (040306-192802242):20)
at com.google.android.gms.ads.identifier.a.b(:com.google.android.gms.dynamite_dynamitemodulesa@12529019@12.5.29 (040306-192802242):148)
at com.google.android.gms.ads.internal.util.d.a(:com.google.android.gms.dynamite_dynamitemodulesa@12529019@12.5.29 (040306-192802242):6)
at com.google.android.gms.ads.internal.util.b.run(:com.google.android.gms.dynamite_dynamitemodulesa@12529019@12.5.29 (040306-192802242):4)
at com.google.android.gms.ads.internal.util.m.call(:com.google.android.gms.dynamite_dynamitemodulesa@12529019@12.5.29 (040306-192802242):3)
at com.google.android.gms.ads.internal.util.n.run(:com.google.android.gms.dynamite_dynamitemodulesa@12529019@12.5.29 (040306-192802242):3)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
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.util.concurrent.TimeoutException: Timed out waiting for the service connection
at com.google.android.gms.ads.identifier.a.a(:com.google.android.gms.dynamite_dynamitemodulesa@12529019@12.5.29 (040306-192802242):189)
at com.google.android.gms.ads.identifier.a.a(:com.google.android.gms.dynamite_dynamitemodulesa@12529019@12.5.29 (040306-192802242):20)
at com.google.android.gms.ads.identifier.a.b(:com.google.android.gms.dynamite_dynamitemodulesa@12529019@12.5.29 (040306-192802242):148)
at com.google.android.gms.ads.internal.util.d.a(:com.google.android.gms.dynamite_dynamitemodulesa@12529019@12.5.29 (040306-192802242):6)
at com.google.android.gms.ads.internal.util.b.run(:com.google.android.gms.dynamite_dynamitemodulesa@12529019@12.5.29 (040306-192802242):4)
at com.google.android.gms.ads.internal.util.m.call(:com.google.android.gms.dynamite_dynamitemodulesa@12529019@12.5.29 (040306-192802242):3)
at com.google.android.gms.ads.internal.util.n.run(:com.google.android.gms.dynamite_dynamitemodulesa@12529019@12.5.29 (040306-192802242):3)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
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)
解决方案
您可能需要添加此shrinkResources true
shin-code
资源收缩仅与代码收缩结合使用。在代码收缩器移除所有未使用的代码后,资源收缩器可以识别应用程序仍在使用哪些资源。当您添加包含资源的代码库时尤其如此 - 您必须删除未使用的库代码,以便库资源变得未被引用,因此可以被资源收缩器移除。
推荐阅读
- java - 数组列表
无法转换为 String[] 错误 - c - 如何在C代码中以20个字符为一组分隔字符
- ssas - 事实表中的外键
- javascript - chrome.webRequest.onHeadersReceived 后的 chrome.tabs.sendMessage 不起作用
- ios - 按月/年和总和对数组进行分组
- google-analytics - 最简单的隐私政策
- excel - VBA Excel - 想要根据选定的单元格选择 1 行或多行并复制到另一张工作表
- r - 如何使用 for 循环获取每个列的异常值?
- java - 通过 Java 中的接口调用时变量赋值被延迟
- c# - 将 StringSegment 附加到 StringBuilder