【发布时间】:2018-11-09 07:19:35
【问题描述】:
我已经构建了一个在调试模式下运行良好的应用程序。 但是,当涉及到发布模式时,它开始崩溃,我保证 Code / Proguard 没有问题。
当我的 SplashActivity 没有 setContentView 时,它可以正常工作。 但是当它 (setContentView) 引用一个以编程方式创建的视图时,它开始崩溃。
在 CrashLog 中,它提到了一些奇怪的 XML 文件第 95 行。 但我没有参考 xml 布局文件。 并且 CrashLog 提到 Error inflating class Button。 我一个人通过了以编程方式创建的 ImageView。
onCreate 中的代码:
ImageView ivSplash = new ImageView(this);
ivSplash.setScaleType(ImageView.ScaleType.CENTER_CROP);
ivSplash.setImageResource(R.drawable.splash_image);
setContentView(ivSplash);
即使我只是检查了 Empty TextView,它也崩溃了,与 ImageView / Image 没有任何关系。 因为在发布模式下,同一应用程序在两天前运行良好。但不是现在。
完全奇怪。请检查此和帮助。请在下面找到 CrashLog。
崩溃日志:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.shriramvalue.shrirampay.dev, PID: 30843
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.shriramvalue.shrirampay.dev/com.shriramvalue.shrirampay.SplashActivity}: android.view.InflateException: Binary XML file line #95: Binary XML file line #37: Error inflating class Button
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2659)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2724)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1473)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6123)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:757)
Caused by: android.view.InflateException: Binary XML file line #95: Binary XML file line #37: Error inflating class Button
Caused by: android.view.InflateException: Binary XML file line #37: Error inflating class Button
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void agv.a()' on a null object reference
at android.support.v7.widget.AppCompatButton.setBackgroundDrawable(Unknown Source)
at android.view.View.setBackground(View.java:18139)
at android.view.View.<init>(View.java:4575)
at android.widget.TextView.<init>(TextView.java:710)
at android.widget.Button.<init>(Button.java:109)
at android.widget.Button.<init>(Button.java:105)
at android.support.v7.widget.AppCompatButton.<init>(Unknown Source)
at android.support.v7.widget.AppCompatButton.<init>(Unknown Source)
at android.support.v7.app.AppCompatViewInflater.a(Unknown Source)
at abs.a(Unknown Source)
at abs.onCreateView(Unknown Source)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:769)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:858)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:861)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:994)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:854)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
at android.view.LayoutInflater.inflate(LayoutInflater.java:518)
at android.view.LayoutInflater.inflate(LayoutInflater.java:426)
at android.view.LayoutInflater.inflate(LayoutInflater.java:377)
at abs.b(Unknown Source)
at acg.setContentView(Unknown Source)
at abc.onCreate(Unknown Source)
at android.app.Dialog.dispatchOnCreate(Dialog.java:389)
at android.app.Dialog.show(Dialog.java:293)
at abd.b(Unknown Source)
at h.f(Unknown Source)
at com.shriramvalue.shrirampay.SplashActivity.onCreate(Unknown Source)
at android.app.Activity.performCreate(Activity.java:6672)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1140)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2612)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2724)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1473)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6123)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:757)
【问题讨论】:
-
Binary XML file line #95 -
当您尝试执行 agv.a() 时,似乎有空指针
-
我已经提到过,我没有在那里传递任何 XML 布局。 @IntelliJAmiya
-
试试这个 - 改变你正在使用的图片大小@Vivek
-
也试过@Dhanshri。即使我更换了 TextView,问题仍然存在。当我评论 setContentView 方法时,它可以工作
标签: android android-layout android-studio android-gradle-plugin