我正在制作一个非常简单的应用程序包含38个图像,当我运行应用程序时,我收到了这条消息:
不幸的是, MyAppName 已停止。
当我点击确定时,应用程序会重新开始工作,然后接下来的几页会做同样的事情。
我的应用程序运行时无需连接到互联网,
这是我的LogCat:
12566540字节分配时内存不足。 致命异议:主要 java.lang.RuntimeException:无法启动活动ComponentInfo {com.Web.myappname / com.Web.myappname.A4}:android.view.InflateException:二进制XML文件行#2:错误导致类
我在后台使用图片。
这是XML文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android1="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android1:id="@+id/RelativeLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/image_01" >
<Button
android1:id="@+id/button1"
android1:layout_width="wrap_content"
android1:layout_height="wrap_content"
android1:layout_alignParentLeft="true"
android1:layout_alignParentTop="true"
android1:text="Main"
android1:textStyle="bold"
tools:ignore="HardcodedText" />
<Button
android1:id="@+id/button2a1"
android1:layout_width="wrap_content"
android1:layout_height="wrap_content"
android1:layout_alignParentRight="true"
android1:layout_alignParentTop="true"
android1:text="Next"
android1:textStyle="bold"
tools:ignore="HardcodedText" />
</RelativeLayout>
和java文件:
package com.web.myappname;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class A1 extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.a1);
Button main = (Button) findViewById(R.id.button1);
main.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
startActivity(new Intent(A1.this, MainActivity.class));
}
});
Button forward = (Button) findViewById(R.id.button2a1);
forward.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
startActivity(new Intent(A1.this, A2.class));
}
});
}
}
非常感谢任何形式的帮助或建议。谢谢!
答案 0 :(得分:1)
没有代码,很难提出任何建议。
您的应用程序崩溃了,因为您正在加载大量图像而不回收内存。总是用图像技巧。也许如果你在内存不足的手机上试用它,你的应用程序会更快崩溃。
解决方案:最好的办法是使用外部好的库来加载图像。它会照顾你的一切,当你没有释放内存时你的应用程序不会崩溃。
最常用的库是https://github.com/nostra13/Android-Universal-Image-Loader
答案 1 :(得分:0)
位图图像需要大量内存,并且在加载图像时应用程序内存不足。您必须有效地加载大位图。请参阅如何在Android中加载大型位图。
http://developer.android.com/training/displaying-bitmaps/load-bitmap.html
Android Universal Image Loader也是不错的选择。
答案 2 :(得分:0)
这可能很有用:android:largeHeap="true"
它告诉android它想要更大的堆分配。然而,Android不必尊重它。这可能“解决”你的问题,但我也认为这是一个糟糕的解决方案。