Java 运行android studio项目时发生由OutOfMemoryException引起的致命异常

Java 运行android studio项目时发生由OutOfMemoryException引起的致命异常,java,android,out-of-memory,Java,Android,Out Of Memory,我最近添加了一个按钮,允许我进入谷歌地图,完成后,我的其他按钮都没有工作,下面的错误消息现在显示出来。打开地图的按钮起作用,但其他按钮现在不起作用 出现在我的android显示器上的错误 04-19 14:06:31.004 11816-11816/com.example.matthew.myapp E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.matthew.myapp, PID: 11816 java.lan

我最近添加了一个按钮,允许我进入谷歌地图,完成后,我的其他按钮都没有工作,下面的错误消息现在显示出来。打开地图的按钮起作用,但其他按钮现在不起作用

出现在我的android显示器上的错误

    04-19 14:06:31.004 11816-11816/com.example.matthew.myapp E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.matthew.myapp, PID: 11816
java.lang.OutOfMemoryError: Failed to allocate a 54859872 byte allocation with 1901032 free bytes and 1856KB until OOM
at dalvik.system.VMRuntime.newNonMovableArray(Native Method)
at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:609)
at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:444)
at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:1080)
at android.content.res.Resources.loadDrawableForCookie(Resources.java:2635)
at android.content.res.Resources.loadDrawable(Resources.java:2540)
at android.content.res.TypedArray.getDrawable(TypedArray.java:870)
at android.widget.ImageView.<init>(ImageView.java:152)
at android.widget.ImageView.<init>(ImageView.java:140)
at android.support.v7.widget.AppCompatImageView.<init>(AppCompatImageView.java:57)
at android.support.v7.widget.AppCompatImageView.<init>(AppCompatImageView.java:53)
at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:106)
at android.support.v7.app.AppCompatDelegateImplV7.createView(AppCompatDelegateImplV7.java:972)
at android.support.v7.app.AppCompatDelegateImplV7.onCreateView(AppCompatDelegateImplV7.java:1031)
at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:44)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:746)
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.rInflate(LayoutInflater.java:838)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:971)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:831)
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:276)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
at com.example.matthew.myapp.LineUpActivity.onCreate(LineUpActivity.java:15)
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.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
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)
将此添加到清单文件中

这将为你的应用程序分配大堆

将此添加到清单文件中


这将为您的应用程序分配大量堆。

我认为问题是由Google Play服务造成的

将其更改为特定的库

com.google.android.gms:play-services-base:6.5.87

我认为这个问题是由Google Play服务引起的

将其更改为特定的库

com.google.android.gms:play-services-base:6.5.87

检查布局文件activity_lineup.xml。我认为您正在从res/drawable/或该布局文件视图中的某个位置加载大尺寸图像。 下面的日志清楚地说明了这一点:

OutOfMemoryError: Failed to allocate a 54859872 byte 
...
at android.content.res.Resources.loadDrawable(Resources.java:2540)
...
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)

因此,由于outOfMemory异常,您的活动无法启动。

请检查布局文件activity\u lineup.xml。我认为您正在从res/drawable/或该布局文件视图中的某个位置加载大尺寸图像。 下面的日志清楚地说明了这一点:

OutOfMemoryError: Failed to allocate a 54859872 byte 
...
at android.content.res.Resources.loadDrawable(Resources.java:2540)
...
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)

因此,由于outOfMemory异常,您的活动无法启动。

在清单的应用程序标记中使用android:largeHeap=“true”,并使用Glide或通用图像加载器加载背景图像或大尺寸图像

使用android:largeHeap=“true”在清单的应用程序标记中,使用Glide或Universal Image loader加载背景图像或高尺寸图像

是否在任何位置设置图像?因为你有一个OOM异常,所以我认为你设置了一个太大的可绘制文件…你试图在内存中加载近55MB,而你的内存不足2MB…我正在设置背景图像,但文件大小只有183kb。你说:
文件大小
。但是,解压缩时,大小为
X*Y*4字节
。您是否在任何位置设置图像?因为你有一个OOM异常,所以我认为你设置了一个太大的可绘制文件…你试图在内存中加载近55MB,而你的内存不足2MB…我正在设置背景图像,但文件大小只有183kb。你说:
文件大小
。但是,当解压缩时,大小是
X*Y*4字节
。我应该在哪里实现它?请参阅此处我应该在哪里实现它?请参阅此处