OutOfMemoryError。使用图片(不是大图片,我使用largeheap)时会在手机上发生

时间:2019-05-19 21:12:14

标签: android android-studio out-of-memory android-image

我在这里对我的申请提出了很多问题。 我在Google Play上有应用程序(js-设计时尚和图案制造商)。 我在很多设备上运行该应用程序,但没有一个发生错误。 但是我有一些手机出错了 手机运行的是android 7.1,并且它们是银河s7(不仅仅是银河手机)。

我的应用程序使用了大量图像(将近900张),并且我对其进行了大量测试,是什么会导致OutOfMemoryRrror,它不是很大的图像(在某些手机上可以正常工作,甚至在同一部手机上也可以)在一个上工作,但在另一个上出错)。 我在清单2中使用它:

android:hardwareAccelerated =“ false”     android:largeHeap =“ true”

但仍然无法正常工作。 当用户将图像添加到主布局时会发生问题。

在播放控制台中,我看到以下内容: enter image description here

因此,如果我了解,用户安装该应用程序后,运行时将再占用50MB,因此,我认为,如果用户没有其他50MB,则该应用程序将崩溃!

播放控制台中的错误:

java.lang.OutOfMemoryError: 
  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:1152)
  at android.content.res.ResourcesImpl.loadDrawableForCookie (ResourcesImpl.java:857)
  at android.content.res.ResourcesImpl.loadDrawable (ResourcesImpl.java:708)
  at android.content.res.Resources.loadDrawable (Resources.java:863)
  at android.content.res.TypedArray.getDrawable (TypedArray.java:928)
  at android.widget.ImageView.<init> (ImageView.java:157)
  at android.widget.ImageView.<init> (ImageView.java:145)
  at android.support.v7.widget.AppCompatImageView.<init> (AppCompatImageView.java:71)
  at android.support.v7.widget.AppCompatImageView.<init> (AppCompatImageView.java:67)
  at android.support.v7.app.AppCompatViewInflater.createView (AppCompatViewInflater.java:106)
  at android.support.v7.app.AppCompatDelegateImplV9.createView (AppCompatDelegateImplV9.java:1016)
  at android.support.v7.app.AppCompatDelegateImplV9.onCreateView (AppCompatDelegateImplV9.java:1073)
  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.rInflate (LayoutInflater.java:861)
  at android.view.LayoutInflater.rInflateChildren (LayoutInflater.java:821)
  at android.view.LayoutInflater.rInflate (LayoutInflater.java:861)
  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.royijournogmail.designjs.MainActivity.onCreate (MainActivity.java:859)
  at android.app.Activity.performCreate (Activity.java:6757)
  at android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1119)
  at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2704)
  at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2812)
  at android.app.ActivityThread.-wrap12 (ActivityThread.java)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1528)
  at android.os.Handler.dispatchMessage (Handler.java:102)
  at android.os.Looper.loop (Looper.java:154)
  at android.app.ActivityThread.main (ActivityThread.java:6311)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:872)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:762)

我非常确定这不会因为大图像而发生,我认为这仅仅是因为安装后的运行时使用情况。

有些人可以帮我做什么?如果我将使用处理imageviews的库,这会有所帮助吗?还是我可以在Google Play中输入您需要100MB的免费空间才能下载该应用?我不希望某些用户使用该应用程序而崩溃!。

非常感谢!

0 个答案:

没有答案