2016-05-29 85 views
0

我一直在尝试创建一个非常简单的应用程序,为此,我仅使用activity_main.xml(当前)。每当我放置ImageView,应用程序崩溃。没有ImageView,它运行完美。这里是我用ImageView设置的代码:Android Studio + Genymotion:应用程序在加载图像时崩溃

<?xml version="1.0" encoding="utf-8" ?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#000" 
    android:orientation="vertical" 
    android:weightSum="32"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="10"> 
     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:text="Rock Paper Scissor" 
      android:textSize="30dp" 
      android:textColor="#FFF" 
      android:gravity="center" 
      android:layout_marginTop="20dp" 
      android:id="@+id/title" 
      android:layout_marginBottom="20dp" 
      /> 
    </LinearLayout> 
    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="30dp" 
     android:layout_marginBottom="30dp" 
     android:id="@+id/iconLayout" 
     android:layout_weight="10" 
     > 
     <ImageView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/rock" 
      android:layout_gravity="center" 
      android:adjustViewBounds="true" 
      android:layout_weight="1" 
      /> 
     <ImageView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/paper" 
      android:layout_gravity="center" 
      android:adjustViewBounds="true" 
      android:layout_weight="1"/> 
     <ImageView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/scissor" 
      android:layout_gravity="center" 
      android:adjustViewBounds="true" 
      android:layout_weight="1"/> 
    </LinearLayout> 
    <LinearLayout 
     android:layout_weight="10" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     > 
     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:textColor="#FFF" 
      android:textSize="20sp" 
      android:layout_margin="20dp" 
      android:gravity="center" 
      android:id="@+id/scoreID" 
      android:text="Your Score: 0" 
      android:layout_weight="1"/> 
     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:text="Computer Score: 0" 
      android:textColor="#FFF" 
      android:gravity="center" 
      android:textSize="20sp" 
      android:layout_margin="20dp" 
      android:layout_weight="1" 
      /> 
    </LinearLayout> 

</LinearLayout> 

如果我从所有3中删除android:src然后运行,app运行正常。但是有了它,它崩溃了。这里是我的logcat以及:

5.853 2171-2171/com.codedamn.m.firstapp I/Process: Sending signal. PID: 2171 SIG: 9 
05-29 10:23:44.459 3861-3861/com.codedamn.m.firstapp I/art: Forcing collection of SoftReferences for 95MB allocation 
05-29 10:23:44.463 3861-3861/com.codedamn.m.firstapp E/art: Throwing OutOfMemoryError "Failed to allocate a 100000012 byte allocation with 16777120 free bytes and 62MB until OOM" 
05-29 10:23:44.463 3861-3861/com.codedamn.m.firstapp D/skia: --- allocation failed for scaled bitmap 
05-29 10:23:44.464 3861-3861/com.codedamn.m.firstapp D/AndroidRuntime: Shutting down VM 
05-29 10:23:44.464 3861-3861/com.codedamn.m.firstapp E/AndroidRuntime: FATAL EXCEPTION: main 
                     Process: com.codedamn.m.firstapp, PID: 3861 
                     java.lang.OutOfMemoryError: Failed to allocate a 100000012 byte allocation with 16777120 free bytes and 62MB 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:973) 
                      at android.content.res.Resources.loadDrawableForCookie(Resources.java:2423) 
                      at android.content.res.Resources.loadDrawable(Resources.java:2330) 
                      at android.content.res.TypedArray.getDrawable(TypedArray.java:749) 
                      at android.widget.ImageView.<init>(ImageView.java:146) 
                      at android.widget.ImageView.<init>(ImageView.java:135) 
                      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:980) 
                      at android.support.v7.app.AppCompatDelegateImplV7.onCreateView(AppCompatDelegateImplV7.java:1039) 
                      at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:44) 
                      at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:725) 
                      at android.view.LayoutInflater.rInflate(LayoutInflater.java:806) 
                      at android.view.LayoutInflater.rInflate(LayoutInflater.java:809) 
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:504) 
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:414) 
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:365) 
                      at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280) 
                      at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 
                      at com.codedamn.m.firstapp.MainActivity.onCreate(MainActivity.java:12) 
                      at android.app.Activity.performCreate(Activity.java:5933) 
                      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105) 
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251) 
                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360) 
                      at android.app.ActivityThread.access$800(ActivityThread.java:144) 
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278) 
                      at android.os.Handler.dispatchMessage(Handler.java:102) 
                      at android.os.Looper.loop(Looper.java:135) 
                      at android.app.ActivityThread.main(ActivityThread.java:5221) 
                      at java.lang.reflect.Method.invoke(Native Method) 
                      at java.lang.reflect.Method.invoke(Method.java:372) 
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 
05-29 10:24:44.974 3861-3861/com.codedamn.m.firstapp I/Process: Sending signal. PID: 3861 SIG: 9 
05-29 10:27:41.400 5851-5851/com.codedamn.m.firstapp W/art: Verification of void android.support.v4.app.FragmentHostCallback.reportLoaderStart() took 176.439ms 
05-29 10:27:41.451 5851-5851/com.codedamn.m.firstapp 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 
05-29 10:27:42.040 5851-5851/com.codedamn.m.firstapp I/art: Forcing collection of SoftReferences for 95MB allocation 
05-29 10:27:42.044 5851-5851/com.codedamn.m.firstapp E/art: Throwing OutOfMemoryError "Failed to allocate a 100000012 byte allocation with 16777216 free bytes and 62MB until OOM" 
05-29 10:27:42.044 5851-5851/com.codedamn.m.firstapp D/skia: --- allocation failed for scaled bitmap 
05-29 10:27:42.045 5851-5851/com.codedamn.m.firstapp D/AndroidRuntime: Shutting down VM 
05-29 10:27:42.045 5851-5851/com.codedamn.m.firstapp E/AndroidRuntime: FATAL EXCEPTION: main 
                     Process: com.codedamn.m.firstapp, PID: 5851 
                     java.lang.OutOfMemoryError: Failed to allocate a 100000012 byte allocation with 16777216 free bytes and 62MB 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:973) 
                      at android.content.res.Resources.loadDrawableForCookie(Resources.java:2423) 
                      at android.content.res.Resources.loadDrawable(Resources.java:2330) 
                      at android.content.res.TypedArray.getDrawable(TypedArray.java:749) 
                      at android.widget.ImageView.<init>(ImageView.java:146) 
                      at android.widget.ImageView.<init>(ImageView.java:135) 
                      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:980) 
                      at android.support.v7.app.AppCompatDelegateImplV7.onCreateView(AppCompatDelegateImplV7.java:1039) 
                      at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:44) 
                      at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:725) 
                      at android.view.LayoutInflater.rInflate(LayoutInflater.java:806) 
                      at android.view.LayoutInflater.rInflate(LayoutInflater.java:809) 
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:504) 
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:414) 
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:365) 
                      at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280) 
                      at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 
                      at com.codedamn.m.firstapp.MainActivity.onCreate(MainActivity.java:12) 
                      at android.app.Activity.performCreate(Activity.java:5933) 
                      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105) 
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251) 
                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360) 
                      at android.app.ActivityThread.access$800(ActivityThread.java:144) 
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278) 
                      at android.os.Handler.dispatchMessage(Handler.java:102) 
                      at android.os.Looper.loop(Looper.java:135) 
                      at android.app.ActivityThread.main(ActivityThread.java:5221) 
                      at java.lang.reflect.Method.invoke(Native Method) 
                      at java.lang.reflect.Method.invoke(Method.java:372) 
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 
05-29 10:31:26.106 5851-5851/com.codedamn.m.firstapp I/Process: Sending signal. PID: 5851 SIG: 9 
+0

什么是在你的logcat? –

+0

你内存不足。取决于你的图像的大小,以及你在做什么,他们在活动 –

+0

我想通了。我有3张图片,2张图片大概是〜60kb。另一个是〜800 kb。当我从代码中排除800 kb的文件时,它会运行。每个应用程序分配了多少内存? @Leo – mehulmpt

回答

1

我会猜测你加载的图像是相当巨大的,因为你正在经历内存不足的错误。

尝试用更小的图片和看看有没有什么帮助。阅读android开发人员网站来处理这些问题。

+0

我想通了。我有3张图片,2张图片大概是〜60kb。另一个是〜800 kb。当我从代码中排除800 kb的文件时,它会运行。每个应用程序分配了多少内存? – mehulmpt

+0

没关系,我将所有图像压缩到约600 KB,现在它可以工作。 – mehulmpt

相关问题