-2

I am trying to create a splash screen using android studio. But I'm getting a error when it launches.It says unfortunately app_name has stopped.

splashscreen.xml

 <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/colorPrimary" >

        <ImageView
            android:id="@+id/imgLogo"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:src="@drawable/logo" />

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dp"
            android:textSize="12dp"
            android:textColor="#454545"
            android:gravity="center_horizontal"
            android:layout_alignParentBottom="true"
            android:text="OK Google" />


        </RelativeLayout>

SplashScreen.java

public class SplashScreen extends Activity
    {

        // Splash screen timer
        private static int SPLASH_TIME_OUT = 8000;

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

            new Handler().postDelayed(new Runnable() {

                @Override
                public void run() {
                    // This method will be executed once the timer is over
                    // Start your app main activity
                    Intent i = new Intent(SplashScreen.this, MainActivity.class);
                    startActivity(i);

                    // close this activity
                    finish();
                }
            }, SPLASH_TIME_OUT);
        }

    }

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.sloid.splashgun">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        <activity
            android:name="com.example.sloid.splashgun.SplashScreen"
            android:label="@string/app_name"
            android:screenOrientation="portrait"
            android:theme="@style/SplashTheme" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity android:name="com.example.sloid.splashgun.MainActivity"
            android:label="@string/app_name"/>

    </application>

</manifest>

I want to create a splash screen and run it for 8s.In that i want to display my logo and some text

The error says Unfortunately app_name has stopped.And it closes.
Please help.

MainActivity.java

package com.example.sloid.splashgun;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

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

LogCat report

12-04 06:54:50.578 3399-3399/? I/art: Late-enabling -Xcheck:jni
12-04 06:54:50.581 3399-3399/? W/art: Unexpected CPU variant for X86 using defaults: x86
12-04 06:54:50.610 3399-3405/? E/art: Failed sending reply to debugger: Broken pipe
12-04 06:54:50.610 3399-3405/? I/art: Debugger is no longer active
12-04 06:54:50.610 3399-3405/? I/art: Starting a blocking GC Instrumentation
12-04 06:54:50.836 3399-3399/? W/System: ClassLoader referenced unknown path: /data/app/com.example.sloid.splashgun-1/lib/x86
12-04 06:54:50.844 3399-3399/? I/InstantRun: starting instant run server: is main process
12-04 06:54:50.878 3399-3399/? W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable
12-04 06:54:51.018 3399-3399/? I/art: Starting a blocking GC Alloc
12-04 06:54:51.018 3399-3399/? I/art: Starting a blocking GC Alloc
12-04 06:54:51.023 3399-3399/? I/art: Alloc sticky concurrent mark sweep GC freed 5048(581KB) AllocSpace objects, 0(0B) LOS objects, 48% free, 4MB/8MB, paused 154us total 5.391ms
12-04 06:54:51.023 3399-3399/? I/art: Starting a blocking GC Alloc
12-04 06:54:51.029 3399-3399/? I/art: Alloc partial concurrent mark sweep GC freed 101(4KB) AllocSpace objects, 0(0B) LOS objects, 39% free, 4MB/7MB, paused 130us total 5.689ms
12-04 06:54:51.029 3399-3399/? I/art: Starting a blocking GC Alloc
12-04 06:54:51.042 3399-3399/? I/art: Alloc concurrent mark sweep GC freed 6(168B) AllocSpace objects, 0(0B) LOS objects, 39% free, 4MB/7MB, paused 137us total 12.522ms
12-04 06:54:51.042 3399-3399/? I/art: Forcing collection of SoftReferences for 105MB allocation
12-04 06:54:51.042 3399-3399/? I/art: Starting a blocking GC Alloc
12-04 06:54:51.051 3399-3399/? I/art: Alloc concurrent mark sweep GC freed 3(72B) AllocSpace objects, 0(0B) LOS objects, 39% free, 4MB/7MB, paused 144us total 8.744ms
12-04 06:54:51.051 3399-3399/? W/art: Throwing OutOfMemoryError "Failed to allocate a 110250012 byte allocation with 2981850 free bytes and 91MB until OOM"
12-04 06:54:51.051 3399-3399/? I/art: Starting a blocking GC Alloc
12-04 06:54:51.051 3399-3399/? I/art: Starting a blocking GC Alloc
12-04 06:54:51.054 3399-3399/? I/art: Starting a blocking GC Alloc
12-04 06:54:51.059 3399-3399/? I/art: Starting a blocking GC Alloc
12-04 06:54:51.065 3399-3399/? I/art: Alloc concurrent mark sweep GC freed 3(72B) AllocSpace objects, 0(0B) LOS objects, 39% free, 4MB/7MB, paused 126us total 6.298ms
12-04 06:54:51.065 3399-3399/? I/art: Forcing collection of SoftReferences for 105MB allocation
12-04 06:54:51.065 3399-3399/? I/art: Starting a blocking GC Alloc
12-04 06:54:51.072 3399-3399/? I/art: Alloc concurrent mark sweep GC freed 3(72B) AllocSpace objects, 0(0B) LOS objects, 39% free, 4MB/7MB, paused 116us total 6.824ms
12-04 06:54:51.072 3399-3399/? W/art: Throwing OutOfMemoryError "Failed to allocate a 110250012 byte allocation with 2981850 free bytes and 91MB until OOM"
12-04 06:54:51.072 3399-3399/? D/skia: --- allocation failed for scaled bitmap
12-04 06:54:51.073 3399-3399/? D/AndroidRuntime: Shutting down VM
12-04 06:54:51.075 3399-3399/? E/AndroidRuntime: FATAL EXCEPTION: main
                                                 Process: com.example.sloid.splashgun, PID: 3399
                                                 java.lang.OutOfMemoryError: Failed to allocate a 110250012 byte allocation with 2981850 free bytes and 91MB until OOM
                                                     at dalvik.system.VMRuntime.newNonMovableArray(Native Method)
                                                     at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
                                                     at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:620)
                                                     at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:455)
                                                     at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:1155)
                                                     at android.content.res.ResourcesImpl.loadDrawableForCookie(ResourcesImpl.java:720)
                                                     at android.content.res.ResourcesImpl.loadDrawable(ResourcesImpl.java:571)
                                                     at android.content.res.Resources.loadDrawable(Resources.java:858)
                                                     at android.content.res.TypedArray.getDrawable(TypedArray.java:928)
                                                     at android.widget.ImageView.<init>(ImageView.java:162)
                                                     at android.widget.ImageView.<init>(ImageView.java:150)
                                                     at android.support.v7.widget.AppCompatImageView.<init>(AppCompatImageView.java:72)
                                                     at android.support.v7.widget.AppCompatImageView.<init>(AppCompatImageView.java:68)
                                                     at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:106)
                                                     at android.support.v7.app.AppCompatDelegateImplV9.createView(AppCompatDelegateImplV9.java:1024)
                                                     at android.support.v7.app.AppCompatDelegateImplV9.onCreateView(AppCompatDelegateImplV9.java:1081)
                                                     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.inflate(LayoutInflater.java:518)
                                                     at android.view.LayoutInflater.inflate(LayoutInflater.java:426)
                                                     at android.view.LayoutInflater.inflate(LayoutInflater.java:377)
                                                     at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287)
                                                     at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
                                                     at com.example.sloid.splashgun.SplashScreen.onCreate(SplashScreen.java:18)
                                                     at android.app.Activity.performCreate(Activity.java:6679)
                                                     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
                                                     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2618)
                                                     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)
                                                     at android.app.ActivityThread.-wrap12(ActivityThread.java)
                                                     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)
                                                     at android.os.Handler.dispatchMessage(Handler.java:102)
                                                     at android.os.Looper.loop(Looper.java:154)
                                                     at android.app.ActivityThread.main(ActivityThread.java:6119)
                                                     at java.lang.reflect.Method.invoke(Native Method)
                                                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
                                                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
chanaka
  • 187
  • 1
  • 2
  • 12

2 Answers2

1

You can use this code to do what you want . I use it in my app and it works if the problem is not with your MainActivity actually

public class SplashActivity extends Activity implements Runnable {

    Thread mThread;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.splashScreen);
        mThread = new Thread(this);

        mThread.start();
    }

    @Override
    public void run(){
        try {
            Thread.sleep(8000);
        }
        catch (Exception e) {
            e.printStackTrace();
        }
        finally {
            startActivity(new Intent(getApplicationContext(), MainActivity.class));

            finish();
        }
    }
}
Rainmaker
  • 10,294
  • 9
  • 54
  • 89
0

Your code looks fine. The error is that the device is running out of memory. One of the reason could be that your logo file in drawable folder is too large.

You can also try to run this code on a device with more free memory just to confirm.

Harsh
  • 460
  • 5
  • 9
  • "You can also try to run this code on a device with more free memory just to confirm." please can you give an example I;m running on a genymotion emulator.. the virtual device is a google pixel – chanaka Dec 04 '17 at 12:23