-1

My app run in most of devices but in some of device dont run and in Mainactivity.java The error is

java.lang.OutOfMemoryError

I want in SplashScreen.java if dont run Mainactivity.java, run another Activity for example Main2.activity

I use this code but does not work:

        try {
         Intent mainactivity = new Intent(SplashScreen.this, MainActivity.class);
        startActivity(mainactivity);
      }
      catch (OutOfMemoryError e) {
         Intent main2 = new Intent(SplashScreen.this, Main2.class);
        startActivity(main2);
      }

please help

my logcat:

    10-22 08:32:28.311: E/AndroidRuntime(1394): FATAL EXCEPTION: main
    10-22 08:32:28.311: E/AndroidRuntime(1394): Process: ir.maddahha.imamalip, PID: 1394
    10-22 08:32:28.311: E/AndroidRuntime(1394): java.lang.OutOfMemoryError
    10-22 08:32:28.311: E/AndroidRuntime(1394):     at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
    10-22 08:32:28.311: E/AndroidRuntime(1394):     at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:594)
    10-22 08:32:28.311: E/AndroidRuntime(1394):     at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:429)
    10-22 08:32:28.311: E/AndroidRuntime(1394):     at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:840)
    10-22 08:32:28.311: E/AndroidRuntime(1394):     at android.content.res.Resources.loadDrawable(Resources.java:2110)
    10-22 08:32:28.311: E/AndroidRuntime(1394):     at android.content.res.Resources.getDrawable(Resources.java:700)
    10-22 08:32:28.311: E/AndroidRuntime(1394):     at android.graphics.drawable.AnimationDrawable.inflate(AnimationDrawable.java:282)
    10-22 08:32:28.311: E/AndroidRuntime(1394):     at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:937)
    10-22 08:32:28.311: E/AndroidRuntime(1394):     at android.graphics.drawable.Drawable.createFromXml(Drawable.java:877)
    10-22 08:32:28.311: E/AndroidRuntime(1394):     at android.content.res.Resources.loadDrawable(Resources.java:2092)
    10-22 08:32:28.311: E/AndroidRuntime(1394):     at android.content.res.Resources.getDrawable(Resources.java:700)
    10-22 08:32:28.311: E/AndroidRuntime(1394):     at android.view.View.setBackgroundResource(View.java:15303)
    10-22 08:32:28.311: E/AndroidRuntime(1394):     at ir.maddahha.imamalip.Main.onCreate(Main.java:43)
    10-22 08:32:28.311: E/AndroidRuntime(1394):     at android.app.Activity.performCreate(Activity.java:5231)
    10-22 08:32:28.311: E/AndroidRuntime(1394):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
    10-22 08:32:28.311: E/AndroidRuntime(1394):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148)
    10-22 08:32:28.311: E/AndroidRuntime(1394):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
    10-22 08:32:28.311: E/AndroidRuntime(1394):     at android.app.ActivityThread.access$800(ActivityThread.java:135)
    10-22 08:32:28.311: E/AndroidRuntime(1394):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
    10-22 08:32:28.311: E/AndroidRuntime(1394):     at android.os.Handler.dispatchMessage(Handler.java:102)
    10-22 08:32:28.311: E/AndroidRuntime(1394):     at android.os.Looper.loop(Looper.java:136)
    10-22 08:32:28.311: E/AndroidRuntime(1394):     at android.app.ActivityThread.main(ActivityThread.java:5001)
    10-22 08:32:28.311: E/AndroidRuntime(1394):     at java.lang.reflect.Method.invokeNative(Native Method)
    10-22 08:32:28.311: E/AndroidRuntime(1394):     at java.lang.reflect.Method.invoke(Method.java:515)
    10-22 08:32:28.311: E/AndroidRuntime(1394):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
    10-22 08:32:28.311: E/AndroidRuntime(1394):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
    10-22 08:32:28.311: E/AndroidRuntime(1394):     at dalvik.system.NativeStart.main(Native Method)
Hamad
  • 5,096
  • 13
  • 37
  • 65

1 Answers1

2

You can't recover from OutOfMemoryError. This error means your app used all available memory and OS can't allocate more for you. Your best shot is to try to investigate source of the problem. You might have some memory leaks, so try to fix that.