Search code examples
androidandroid-fragmentsandroid-activitysplash-screen

setContentView(); giving error in my splash screen activity


Hello Android Developers,

I am making an app which runs welcome screen (as app features for only one time as user installs app)and then splash screen which contains logo of my app and then it proceed to app my api level is min 17(jelly bean 4.1) my app runs full stable on android ver. 5.0+ without any error without any problem


but when i try to run my app android version like 4.1 or even 4.4.2 it gives me error on setContentView(activity_splash_screen); after welcome screen opens it crashes i have tried openign loginscreen after welcome as next intent instead of splashscreen then also it give same error with setContentView(activity_login_screen); then i try that if directly make my mainactivivty open after welcomeactivity (skipping splash & login both) then it open main page but without navigation drawer and without toolbar name only first page open


my app original sequence which runs on ver. 5.0+

welcomeactivity-->splashscreen-->login-screen->mainactivity-->full app


error for splash screen after welcome if i open splash screen activity

09-11 00:20:54.072 1798-1798/com.example.pk.testing_app2 E/AndroidRuntime: FATAL EXCEPTION: main
                                                                          Process: com.example.pk.testing_app2, PID: 1798
                                                                          java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.pk.testing_app2/com.example.pk.testing_app2.SplashScreenActivity}: android.view.InflateException: Binary XML file line #14: Error inflating class <unknown>
                                                                              at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2339)
                                                                              at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2391)
                                                                              at android.app.ActivityThread.access$900(ActivityThread.java:166)
                                                                              at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1281)
                                                                              at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                              at android.os.Looper.loop(Looper.java:146)
                                                                              at android.app.ActivityThread.main(ActivityThread.java:5511)
                                                                              at java.lang.reflect.Method.invokeNative(Native Method)
                                                                              at java.lang.reflect.Method.invoke(Method.java:515)
                                                                              at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
                                                                              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
                                                                              at dalvik.system.NativeStart.main(Native Method)
                                                                           Caused by: android.view.InflateException: Binary XML file line #14: Error inflating class <unknown>
                                                                              at android.view.LayoutInflater.createView(LayoutInflater.java:626)
                                                                              at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
                                                                              at android.view.LayoutInflater.onCreateView(LayoutInflater.java:675)
                                                                              at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:700)
                                                                              at android.view.LayoutInflater.rInflate(LayoutInflater.java:761)
                                                                              at android.view.LayoutInflater.rInflate(LayoutInflater.java:769)
                                                                              at android.view.LayoutInflater.inflate(LayoutInflater.java:498)
                                                                              at android.view.LayoutInflater.inflate(LayoutInflater.java:398)
                                                                              at android.view.LayoutInflater.inflate(LayoutInflater.java:354)
                                                                              at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:366)
                                                                              at android.app.Activity.setContentView(Activity.java:2009)
                                                                              at com.example.pk.testing_app2.SplashScreenActivity.onCreate(SplashScreenActivity.java:14)
                                                                              at android.app.Activity.performCreate(Activity.java:5322)
                                                                              at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
                                                                              at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2303)
                                                                              at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2391) 
                                                                              at android.app.ActivityThread.access$900(ActivityThread.java:166) 
                                                                              at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1281) 
                                                                              at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                              at android.os.Looper.loop(Looper.java:146) 
                                                                              at android.app.ActivityThread.main(ActivityThread.java:5511) 
                                                                              at java.lang.reflect.Method.invokeNative(Native Method) 
                                                                              at java.lang.reflect.Method.invoke(Method.java:515) 
                                                                              at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283) 
                                                                              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099) 
                                                                              at dalvik.system.NativeStart.main(Native Method) 
                                                                           Caused by: java.lang.reflect.InvocationTargetException
                                                                              at java.lang.reflect.Constructor.constructNative(Native Method)
                                                                              at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
                                                                              at android.view.LayoutInflater.createView(LayoutInflater.java:600)
                                                                              at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) 
                                                                              at android.view.LayoutInflater.onCreateView(LayoutInflater.java:675) 
                                                                              at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:700) 
                                                                              at android.view.LayoutInflater.rInflate(LayoutInflater.java:761) 
                                                                              at android.view.LayoutInflater.rInflate(LayoutInflater.java:769) 
                                                                              at android.view.LayoutInflater.inflate(LayoutInflater.java:498) 
                                                                              at android.view.LayoutInflater.inflate(LayoutInflater.java:398) 
                                                                              at android.view.LayoutInflater.inflate(LayoutInflater.java:354) 
                                                                              at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:366) 
                                                                              at android.app.Activity.setContentView(Activity.java:2009) 
                                                                              at com.example.pk.testing_app2.SplashScreenActivity.onCreate(SplashScreenActivity.java:14) 
                                                                              at android.app.Activity.performCreate(Activity.java:5322) 
                                                                              at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093) 
                                                                              at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2303) 
                                                                              at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2391) 
                                                                              at android.app.ActivityThread.access$900(ActivityThread.java:166) 
                                                                              at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1281) 
                                                                              at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                              at android.os.Looper.loop(Looper.java:146) 
                                                                              at android.app.ActivityThread.main(ActivityThread.java:5511) 
                                                                              at java.lang.reflect.Method.invokeNative(Native Method) 
                                                                              at java.lang.reflect.Method.invoke(Method.java:515) 
                                                                              at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283) 
                                                                              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099) 
                                                                              at dalvik.system.NativeStart.main(Native Method) 
                                                                           Caused by: android.content.res.Resources$NotFoundException: File res/drawable/logo.xml from drawable resource ID #0x7f020060
                                                                              at android.content.res.Resources.loadDrawable(Resources.java:3443)
                                                                              at android.content.res.TypedArray.getDrawable(TypedArray.java:602)
                                                                              at android.widget.ImageView.<init>(ImageView.java:133)
                                                                              at android.widget.ImageView.<init>(ImageView.java:123)
                                                                              at java.lang.reflect.Constructor.constructNative(Native Method) 
                                                                              at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
                                                                              at android.view.LayoutInflater.createView(LayoutInflater.java:600) 
                                                                              at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) 
                                                                              at android.view.LayoutInflater.onCreateView(LayoutInflater.java:675) 
                                                                              at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:700) 
                                                                              at android.view.LayoutInflater.rInflate(LayoutInflater.java:761) 
                                                                              at android.view.LayoutInflater.rInflate(LayoutInflater.java:769) 
                                                                              at android.view.LayoutInflater.inflate(LayoutInflater.java:498) 
                                                                              at android.view.LayoutInflater.inflate(LayoutInflater.java:398) 
                                                                              at android.view.LayoutInflater.inflate(LayoutInflater.java:354) 
                                                                              at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:366) 
                                                                              at android.app.Activity.setContentView(Activity.java:2009) 
                                                                              at com.example.pk.testing_app2.SplashScreenActivity.onCreate(SplashScreenActivity.java:14) 
                                                                              at android.app.Activity.performCreate(Activity.java:5322) 
                                                                              at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093) 
                                                                              at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2303) 
                                                                              at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2391) 
                                                                              at android.app.ActivityThread.access$900(ActivityThread.java:166) 
                                                                              at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1281) 
                                                                              at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                              at android.os.Looper.loop(Looper.java:146) 
                                                                              at android.app.ActivityThread.main(ActivityThread.java:5511) 
                                                                              at java.lang.reflect.Method.invokeNative(Native Method) 
                                                                              at java.lang.reflect.Method.invoke(Method.java:515) 
                                                                              at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283) 
                                                                              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099) 
                                                                              at dalvik.system.NativeStart.main(Native Method) 
                                                                           Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #1: invalid drawable tag vector
                                                                              at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:986)
                                                                              at android.graphics.drawable.Drawable.createFromXml(Drawable.java:930)
                                                                              at android.content.res.Resources.loadDrawable(Resources.java:3439)
                                                                              at android.content.res.TypedArray.getDrawable(TypedArray.java:602) 
                                                                              at android.widget.ImageView.<init>(ImageView.java:133) 
                                                                              at android.widget.ImageView.<init>(ImageView.java:123) 
                                                                              at java.lang.reflect.Constructor.constructNative(Native Method) 
                                                                              at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
                                                                              at android.view.LayoutInflater.createView(LayoutInflater.java:600) 
                                                                              at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) 
                                                                              at android.view.LayoutInflater.onCreateView(LayoutInflater.java:675) 
                                                                              at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:700) 
                                                                              at android.view.LayoutInflater.rInflate(LayoutInflater.java:761) 
                                                                              at android.view.LayoutInflater.rInflate(LayoutInflater.java:769) 
                                                                              at android.view.LayoutInflater.inflate(LayoutInflater.java:498) 
                                                                              at android.view.LayoutInflater.inflate(LayoutInflater.java:398) 
                                                                              at android.view.LayoutInflater.inflate(LayoutInflater.java:354) 
                                                                              at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:366) 
                                                                              at android.app.Activity.setContentView(Activity.java:2009) 
                                                                              at com.example.pk.testing_app2.SplashScreenActivity.onCreate(SplashScreenActivity.java:14) 
                                                                              at android.app.Activity.performCreate(Activity.java:5322) 
                                                                              at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093) 
                                                                              at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2303) 
                                                                              at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2391) 
                                                                              at android.app.ActivityThread.access$900(ActivityThread.java:166) 
                                                                              at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1281) 
                                                                              at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                              at android.os.Looper.loop(Looper.java:146) 
                                                                              at android.app.ActivityThread.main(ActivityThread.java:5511) 
                                                                              at java.lang.reflect.Method.invokeNative(Native Method) 
                                                                              at java.lang.reflect.Method.invoke(Method.java:515) 
                                                                              at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283) 
                                                                              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099) 
                                                                              at dalvik.system.NativeStart.main(Native Method) 

splash screen activity

  import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;


public class SplashScreenActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_splash_screen);



        Handler handler = new Handler();
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                startActivity(new Intent(SplashScreenActivity.this, LoginActivity.class));
            }
        }, 1500);
    }

}

Solution

  • you are calling setContentView(R.layout.activity_welcome); after initialising your toolbar. This probably give you nullPointerExcaption.

    so best practice is to write setContentView(R.layout.activity_welcome); just after super.onCreate(savedInstanceState);.

    Example :

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    
        setContentView(R.layout.activity_welcome);
    
        // rest of the code..
    }