C89-HD
C89-HD

Reputation: 47

Caused by: java.lang.OutOfMemoryError (starting new Activity)

My application contains more than 5 activities with backgrounds services. When I run the app and I click on a button to create the second Activity, the app crashes.

Thanks for any help.

my xml layout : enter image description here

Here is my onCreate:

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

        Button button = (Button) findViewById(R.id.button1);

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, Main2Activity.class);
                startActivity(intent);
                finish();
            }
        });
    }

logcat:

E/AndroidRuntime: FATAL EXCEPTION: main 
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.apollo.arrroo/com.example.apollo.arrroo.Main2Activity}: android.view.InflateException: Binary XML file line #2: Error inflating class <unknown>
                                                                           at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2074)
                                                                           at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2099)
                                                                           at android.app.ActivityThread.access$600(ActivityThread.java:138)
                                                                           at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205)
                                                                           at android.os.Handler.dispatchMessage(Handler.java:99)
                                                                           at android.os.Looper.loop(Looper.java:137)
                                                                           at android.app.ActivityThread.main(ActivityThread.java:4929)
                                                                           at java.lang.reflect.Method.invokeNative(Native Method)
                                                                           at java.lang.reflect.Method.invoke(Method.java:511)
                                                                           at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:798)
                                                                           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:565)
                                                                           at dalvik.system.NativeStart.main(Native Method)
                                                                        Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class <unknown>
                                                                           at android.view.LayoutInflater.createView(LayoutInflater.java:613)
                                                                           at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
                                                                           at android.view.LayoutInflater.onCreateView(LayoutInflater.java:660)
                                                                           at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685)
                                                                           at android.view.LayoutInflater.inflate(LayoutInflater.java:466)
                                                                           at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
                                                                           at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
                                                                           at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280)
                                                                           at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
                                                                           at com.example.apollo.arrroo.Main2Activity.onCreate(Main2Activity.java:11)
                                                                           at android.app.Activity.performCreate(Activity.java:5254)
                                                                           at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1082)
                                                                           at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2038)
                                                                           at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2099) 
                                                                           at android.app.ActivityThread.access$600(ActivityThread.java:138) 
                                                                           at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205) 
                                                                           at android.os.Handler.dispatchMessage(Handler.java:99) 
                                                                           at android.os.Looper.loop(Looper.java:137) 
                                                                           at android.app.ActivityThread.main(ActivityThread.java:4929) 
                                                                           at java.lang.reflect.Method.invokeNative(Native Method) 
                                                                           at java.lang.reflect.Method.invoke(Method.java:511) 
                                                                           at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:798) 
                                                                           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:565) 
                                                                           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:417)
                                                                           at android.view.LayoutInflater.createView(LayoutInflater.java:587)
                                                                           at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) 
                                                                           at android.view.LayoutInflater.onCreateView(LayoutInflater.java:660) 
                                                                           at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685) 
                                                                           at android.view.LayoutInflater.inflate(LayoutInflater.java:466) 
                                                                           at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
                                                                           at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 
                                                                           at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280) 
                                                                           at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 
                                                                           at com.example.apollo.arrroo.Main2Activity.onCreate(Main2Activity.java:11) 
                                                                           at android.app.Activity.performCreate(Activity.java:5254) 
                                                                           at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1082) 
                                                                           at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2038) 
                                                                           at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2099) 
                                                                           at android.app.ActivityThread.access$600(ActivityThread.java:138) 
                                                                           at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205) 
                                                                           at android.os.Handler.dispatchMessage(Handler.java:99) 
                                                                           at android.os.Looper.loop(Looper.java:137) 
                                                                           at android.app.ActivityThread.main(ActivityThread.java:4929) 
                                                                           at java.lang.reflect.Method.invokeNative(Native Method) 
                                                                           at java.lang.reflect.Method.invoke(Method.java:511) 
                                                                           at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:798) 
                                                                           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:565) 
                                                                           at dalvik.system.NativeStart.main(Native Method) 
                                                                        Caused by: java.lang.OutOfMemoryError
                                                                           at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
                                                                           at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:500)
                                                                           at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:353)
                                                                           at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:781)
                                                                           at android.content.res.Resources.loadDrawable(Resources.java:1969)
                                                                           at android.content.res.TypedArray.getDrawable(TypedArray.java:601)
                                                                           at android.view.View.<init>(View.java:3348)
                                                                           at android.view.View.<init>(View.java:3285)
                                                                           at android.view.ViewGroup.<init>(ViewGroup.java:421)
                                                                           at android.widget.RelativeLayout.<init>(RelativeLayout.java:187)
                                                                           at java.lang.reflect.Constructor.constructNative(Native Method) 
                                                                           at java.lang.reflect.Constructor.newInstance(Constructor.java:417) 
                                                                           at android.view.LayoutInflater.createView(LayoutInflater.java:587) 
                                                                           at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) 
                                                                           at android.view.LayoutInflater.onCreateView(LayoutInflater.java:660) 
                                                                           at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685) 
                                                                           at android.view.LayoutInflater.inflate(LayoutInflater.java:466) 
                                                                           at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
                                                                           at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 
                                                                           at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280) 
                                                                           at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 
                                                                           at com.example.apollo.arrroo.Main2Activity.onCreate(Main2Activity.java:11) 
 // even more

Upvotes: 1

Views: 1265

Answers (2)

C89-HD
C89-HD

Reputation: 47

I solved the problem if you have the out of memory because of the large image (jpeg) you must use the software FormatFactory. first you see in left : (picture )click on it and chose: all to jpg ---&-click on -- output setting & choose (max width1024 max height 768). & finally click on add file choose your image from desktop and click ok . and click on start .

Upvotes: 0

CodyEngel
CodyEngel

Reputation: 1501

Your background image's file size is too large. I don't know what your structure looks like but gogo1 should probably have several different resolutions based on screen sizes. Not only that but it should be mobile optimized so that it can be loaded efficiently (and avoid out of memory exceptions).

If you must load the image and cannot compress the file size then your only option would be to set the background programmatically after compressing the drawable to a size that won't cause an out of memory exception.

My recommendation is fix gogo1 so the image is optimized for different screen sizes and also make sure it's file size is no more than ~100kb (and even that is overkill).

Upvotes: 1

Related Questions