(新手求助)MonoDevelop 运行程序黑屏。

bad1050293 2012-12-24 10:39:34
是用MonoDevelop开发的安卓程序,只是加了几张图片就运行黑屏了,不加图片则很正常,软件报如下错误:
WARNING: The runtime version supported by this application is unavailable.
Using default runtime: v2.0.50727
WARNING: generic atexit() called from legacy shared library
GREF GC Threshold: 46800
Grow heap (frag case) to 28.566MB for 20994640-byte allocation
Forcing collection of SoftReferences for 37204016-byte allocation
Out of memory on a 37204016-byte allocation.
--- allocation failed for scaled bitmap
UNHANDLED EXCEPTION: Java.Lang.Error: Exception of type 'Java.Lang.Error' was thrown.
at Android.Runtime.JNIEnv.CallVoidMethod (intptr,intptr,Android.Runtime.JValue[]) <0x00074>
at Android.Views.View.SetBackgroundResource (int) <0x0012b>
at a.Activity1.OnCreate (Android.OS.Bundle) <0x00333>
at Android.App.Activity.n_OnCreate_Landroid_os_Bundle_ (intptr,intptr,intptr) <0x00057>
at (wrapper dynamic-method) object.91603396-06bd-4745-afb6-2fa3d5a50a53 (intptr,intptr,intptr) <0x00043>

--- End of managed exception stack trace ---
java.lang.OutOfMemoryError
at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:502)
at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:355)
at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:785)
at android.content.res.Resources.loadDrawable(Resources.java:1965)
at android.content.res.Resources.getDrawable(Resources.java:660)
at android.view.View.setBackgroundResource(View.java:14463)
at a.Activity1.n_onCreate(Native Method)
at a.Activity1.onCreate(Activity1.java:28)
at android.app.Activity.performCreate(Activity.java:5104)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
at android.app.ActivityThread.access$600(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5039)
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:793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
at dalvik.system.NativeStart.main(Native Method)

Unhandled Exception: Java.Lang.Error: Exception of type 'Java.Lang.Error' was thrown.
at Android.Runtime.JNIEnv.CallVoidMethod (intptr,intptr,Android.Runtime.JValue[]) <0x00074>
at Android.Views.View.SetBackgroundResource (int) <0x0012b>
at a.Activity1.OnCreate (Android.OS.Bundle) <0x00333>
at Android.App.Activity.n_OnCreate_Landroid_os_Bundle_ (intptr,intptr,intptr) <0x00057>
at (wrapper dynamic-method) object.91603396-06bd-4745-afb6-2fa3d5a50a53 (intptr,intptr,intptr) <0x00043>

--- End of managed exception stack trace ---
java.lang.OutOfMemoryError
at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:502)
at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:355)
at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:785)
at android.content.res.Resources.loadDrawable(Resources.java:1965)
at android.content.res.Resources.getDrawable(Resources.java:660)
at android.view.View.set
软件源码如下:

using System;

using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;

namespace a
{
[Activity (Label = "12a", MainLauncher = true)]
public class Activity1 : Activity
{

protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);

// Set our view from the "main" layout resource
SetContentView (Resource.Layout.Main);
ImageButton Imagebutton = FindViewById<ImageButton>(Resource.Id.Imagebutton1);
Imagebutton.SetBackgroundResource(Resource.Drawable.A);
Imagebutton.SetImageResource(Resource.Drawable.light);
Imagebutton = FindViewById<ImageButton>(Resource.Id.Imagebutton2);
Imagebutton.SetBackgroundResource(Resource.Drawable.B);
Imagebutton.SetImageResource(Resource.Drawable.cz);
Imagebutton = FindViewById<ImageButton>(Resource.Id.Imagebutton3);
Imagebutton.SetBackgroundResource(Resource.Drawable.C);
Imagebutton.SetImageResource(Resource.Drawable.kt);
Imagebutton = FindViewById<ImageButton>(Resource.Id.Imagebutton4);
Imagebutton.SetBackgroundResource(Resource.Drawable.D);
Imagebutton.SetImageResource(Resource.Drawable.video);
Imagebutton = FindViewById<ImageButton>(Resource.Id.Imagebutton5);
Imagebutton.SetBackgroundResource(Resource.Drawable.E);
Imagebutton.SetImageResource(Resource.Drawable.chuanglianon);
Imagebutton = FindViewById<ImageButton>(Resource.Id.Imagebutton6);
Imagebutton.SetBackgroundResource(Resource.Drawable.E);
Imagebutton.SetImageResource(Resource.Drawable.huanjing);
Imagebutton = FindViewById<ImageButton>(Resource.Id.Imagebutton7);
Imagebutton.SetBackgroundResource(Resource.Drawable.D);
Imagebutton.SetImageResource(Resource.Drawable.shield);
Imagebutton = FindViewById<ImageButton>(Resource.Id.Imagebutton8);
Imagebutton.SetBackgroundResource(Resource.Drawable.C);
Imagebutton.SetImageResource(Resource.Drawable.dianliang);
Imagebutton = FindViewById<ImageButton>(Resource.Id.Imagebutton9);
Imagebutton.SetBackgroundResource(Resource.Drawable.A);
Imagebutton.SetImageResource(Resource.Drawable.homeA);
FrameLayout frameLayout = FindViewById<FrameLayout>(Resource.Id.frameLayout1);
frameLayout.SetBackgroundResource(Resource.Drawable.Background);
// Get our button from the layout resource,
// and attach an event to it

}
}
}

求教各位大大,这是怎么回事啊
...全文
222 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
_Tiny 2013-07-15
  • 打赏
  • 举报
回复
再这行找at a.Activity1.n_onCreate(Native Method) at a.Activity1.onCreate(Activity1.java:28) Activity1.java:28行,目前只能从log中看出问题应该在这行!
顾小林 2013-07-15
  • 打赏
  • 举报
回复
图片那么大 但是你decode所使用的内存就不清楚了。 Out of memory on a 37204016-byte allocation. 这里显示你使用了37M空间。 楼主2分法测试一下 几张图片就会OOM 大家也好帮你分析 坐等高手给你解答
bad1050293 2012-12-24
  • 打赏
  • 举报
回复
最大的图才400多K,所有一共加起来才4MB,而且显示没用到哪么多啊,只用了几张图就显示不出来了。
搬不搬砖 2012-12-24
  • 打赏
  • 举报
回复
内存不够,图太大或太多了吧

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧