MaterialSearchView icon indicating copy to clipboard operation
MaterialSearchView copied to clipboard

Setting background color causes runtime exception and crashes app

Open RikNorakomi opened this issue 8 years ago • 2 comments

Can't seem to be able to set background without app crashing. Caused by NPE: Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.RelativeLayout.setBackground(android.graphics.drawable.Drawable)' on a null object

My searchView config: <com.miguelcatalan.materialsearchview.MaterialSearchView android:id="@+id/search_view" android:textColor="@color/colorAccent" android:background="@color/deepDarkerRed" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:fitsSystemWindows="true" android:minHeight="80dp"/>

Logcat output: FATAL EXCEPTION: main java.lang.RuntimeException: Unable to start activity ComponentInfo{norakomi.sovietPosterArt/sovietPosterArt.MainActivity}: android.view.InflateException: Binary XML file line #58: Binary XML file line #58: Error inflating class at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:4077) at android.app.ActivityThread.-wrap15(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1350) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) Caused by: android.view.InflateException: Binary XML file line #58: Binary XML file line #58: Error inflating class at android.view.LayoutInflater.inflate(LayoutInflater.java:539) at android.view.LayoutInflater.inflate(LayoutInflater.java:423) at android.view.LayoutInflater.inflate(LayoutInflater.java:374) at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:256) at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:109) at sovietPosterArt.MainActivity.onCreate(MainActivity.java:60) at android.app.Activity.performCreate(Activity.java:6237) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)  at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:4077)  at android.app.ActivityThread.-wrap15(ActivityThread.java)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1350)  at android.os.Handler.dispatchMessage(Handler.java:102)  at android.os.Looper.loop(Looper.java:148)  at android.app.ActivityThread.main(ActivityThread.java:5417)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)  Caused by: android.view.InflateException: Binary XML file line #58: Error inflating class at android.view.LayoutInflater.createView(LayoutInflater.java:645) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:764) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) at android.view.LayoutInflater.rInflate(LayoutInflater.java:835) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) at android.view.LayoutInflater.inflate(LayoutInflater.java:515) at android.view.LayoutInflater.inflate(LayoutInflater.java:423)  at android.view.LayoutInflater.inflate(LayoutInflater.java:374)  at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:256)  at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:109)  at sovietPosterArt.MainActivity.onCreate(MainActivity.java:60)  at android.app.Activity.performCreate(Activity.java:6237)  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)  at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:4077)  at android.app.ActivityThread.-wrap15(ActivityThread.java)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1350)  at android.os.Handler.dispatchMessage(Handler.java:102)  at android.os.Looper.loop(Looper.java:148)  at android.app.ActivityThread.main(ActivityThread.java:5417)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)  Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Constructor.newInstance(Native Method) at android.view.LayoutInflater.createView(LayoutInflater.java:619) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:764)  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)  at android.view.LayoutInflater.rInflate(LayoutInflater.java:835)  at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)  at android.view.LayoutInflater.inflate(LayoutInflater.java:515)  at android.view.LayoutInflater.inflate(LayoutInflater.java:423)  at android.view.LayoutInflater.inflate(LayoutInflater.java:374)  at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:256)  at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:109)  at sovietPosterArt.MainActivity.onCreate(MainActivity.java:60)  at android.app.Activity.performCreate(Activity.java:6237)  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)  at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:4077)  at android.app.ActivityThread.-wrap15(ActivityThread.java)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1350)  at android.os.Handler.dispatchMessage(Handler.java:102)  at android.os.Looper.loop(Looper.java:148)  at android.app.ActivityThread.main(ActivityThread.java:5417)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)  Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.RelativeLayout.setBackground(android.graphics.drawable.Drawable)' on a null object reference at com.miguelcatalan.materialsearchview.MaterialSearchView.setBackground(MaterialSearchView.java:299) at android.view.View.(View.java:4328) at android.view.ViewGroup.(ViewGroup.java:573) at android.widget.FrameLayout.(FrameLayout.java:97) at android.widget.FrameLayout.(FrameLayout.java:92) at android.widget.FrameLayout.(FrameLayout.java:88) at com.miguelcatalan.materialsearchview.MaterialSearchView.(MaterialSearchView.java:89) at com.miguelcatalan.materialsearchview.MaterialSearchView.(MaterialSearchView.java:85) at java.lang.reflect.Constructor.newInstance(Native Method)  at android.view.LayoutInflater.createView(LayoutInflater.java:619)  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:764)  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)  at android.view.LayoutInflater.rInflate(LayoutInflater.java:835)  at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)  at android.view.LayoutInflater.inflate(LayoutInflater.java:515)  at android.view.LayoutInflater.inflate(LayoutInflater.java:423)  at android.view.LayoutInflater.inflate(LayoutInflater.java:374)  at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:256)  at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:109)  at sovietPosterArt.MainActivity.onCreate(MainActivity.java:60)  at android.app.Activity.performCreate(Activity.java:6237)  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)  at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:4077)  at android.app.ActivityThread.-wrap15(ActivityThread.java)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1350)  at android.os.Handler.dispatchMessage(Handler.java:102)  at android.os.Looper.loop(Looper.java:148)  at android.app.ActivityThread.main(ActivityThread.java:5417)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 

RikNorakomi avatar Aug 26 '16 14:08 RikNorakomi

Hi @RikNorakomi Did you got rid of this issue?? I am facing the same right now.

salimshivani avatar Sep 20 '18 07:09 salimshivani

@salimshivani Seems that it's possible to do this programmatically

Vadix3 avatar Jul 13 '21 14:07 Vadix3