4

Android 应用程序初学者遇到一些应用程序无法打开的问题。今晚才开始使用它。eclipse中的代码没有显示错误。就在我尝试从模拟器运行它时意外关闭。

主要来源:包 com.example.solidshellsecurity;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.content.Intent;
import android.net.Uri;
import android.util.Log;
import android.view.View;

public class MainActivity extends Activity {
    public static final String TAG = "SolidShellSecurity";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }

    public void processClick(View display) {
        int id = display.getId();
        switch (id) {
            case (R.id.displayWebsite):
                Log.i(TAG, "Loading SolidShellSecurity website");
                Intent website = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.solidshellsecurity.com"));
                startActivity(website);
                break;
            case (R.id.communityDisplay):
                Log.i(TAG, "Loading SolidShellSecurity Community");
                Intent community = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.community.solidshellsecurity.com"));
                startActivity(community);
                break;
            default:
                break;

        }
    }

}

XML

<RelativeLayout 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="@drawable/sssbd"
    tools:context=".MainActivity" >

    <ImageButton
        android:id="@+id/displayWebsite"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_marginRight="14dp"
        android:layout_marginTop="80dp"
        android:layout_toLeftOf="@+id/multiAutoCompleteTextView1"
        android:onClick="processClick"
        android:src="@drawable/ic_launcher" />

    <MultiAutoCompleteTextView
        android:id="@+id/multiAutoCompleteTextView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignTop="@+id/displayWebsite"
        android:ems="10"
        android:text="Website" >

        <requestFocus />
    </MultiAutoCompleteTextView>

    <ImageButton
        android:id="@+id/communityDisplay"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/displayWebsite"
        android:layout_below="@+id/displayWebsite"
        android:layout_marginTop="20dp"
        android:onClick="processClick"
        android:src="@drawable/ic_launcher" />

    <AutoCompleteTextView
        android:id="@+id/autoCompleteTextView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/communityDisplay"
        android:layout_alignParentRight="true"
        android:ems="10"
        android:text="Open Community" />

</RelativeLayout>

错误日志

01-17 08:12:52.383: W/Trace(880): Unexpected value from nativeGetEnabledTags: 0
01-17 08:12:52.413: W/Trace(880): Unexpected value from nativeGetEnabledTags: 0
01-17 08:12:52.853: D/dalvikvm(880): GC_FOR_ALLOC freed 47K, 7% free 2514K/2680K, paused 67ms, total 78ms
01-17 08:12:53.174: I/dalvikvm-heap(880): Grow heap (frag case) to 18.191MB for 16384016-byte allocation
01-17 08:12:53.274: D/dalvikvm(880): GC_FOR_ALLOC freed 1K, 1% free 18512K/18684K, paused 96ms, total 96ms
01-17 08:12:53.393: D/dalvikvm(880): GC_CONCURRENT freed <1K, 1% free 18512K/18684K, paused 14ms+20ms, total 119ms
01-17 08:12:54.433: D/dalvikvm(880): GC_FOR_ALLOC freed <1K, 1% free 18512K/18684K, paused 23ms, total 23ms
01-17 08:12:54.433: I/dalvikvm-heap(880): Forcing collection of SoftReferences for 36864016-byte allocation
01-17 08:12:54.483: D/dalvikvm(880): GC_BEFORE_OOM freed 9K, 1% free 18502K/18684K, paused 44ms, total 45ms
01-17 08:12:54.483: E/dalvikvm-heap(880): Out of memory on a 36864016-byte allocation.
01-17 08:12:54.483: I/dalvikvm(880): "main" prio=5 tid=1 RUNNABLE
01-17 08:12:54.483: I/dalvikvm(880):   | group="main" sCount=0 dsCount=0 obj=0x40a719a0 self=0x2a00bba8
01-17 08:12:54.483: I/dalvikvm(880):   | sysTid=880 nice=0 sched=0/0 cgrp=apps handle=1073849308
01-17 08:12:54.483: I/dalvikvm(880):   | state=R schedstat=( 1580552179 1052425085 177 ) utm=126 stm=32 core=0
01-17 08:12:54.483: I/dalvikvm(880):   at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
01-17 08:12:54.483: I/dalvikvm(880):   at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:502)
01-17 08:12:54.493: I/dalvikvm(880):   at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:355)
01-17 08:12:54.493: I/dalvikvm(880):   at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:785)
01-17 08:12:54.493: I/dalvikvm(880):   at android.content.res.Resources.loadDrawable(Resources.java:1965)
01-17 08:12:54.493: I/dalvikvm(880):   at android.content.res.TypedArray.getDrawable(TypedArray.java:601)
01-17 08:12:54.493: I/dalvikvm(880):   at android.view.View.<init>(View.java:3328)
01-17 08:12:54.493: I/dalvikvm(880):   at android.view.View.<init>(View.java:3257)
01-17 08:12:54.493: I/dalvikvm(880):   at android.view.ViewGroup.<init>(ViewGroup.java:425)
01-17 08:12:54.493: I/dalvikvm(880):   at android.widget.RelativeLayout.<init>(RelativeLayout.java:210)
01-17 08:12:54.493: I/dalvikvm(880):   at java.lang.reflect.Constructor.constructNative(Native Method)
01-17 08:12:54.493: I/dalvikvm(880):   at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
01-17 08:12:54.493: I/dalvikvm(880):   at android.view.LayoutInflater.createView(LayoutInflater.java:587)
01-17 08:12:54.493: I/dalvikvm(880):   at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
01-17 08:12:54.493: I/dalvikvm(880):   at android.view.LayoutInflater.onCreateView(LayoutInflater.java:660)
01-17 08:12:54.503: I/dalvikvm(880):   at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685)
01-17 08:12:54.503: I/dalvikvm(880):   at android.view.LayoutInflater.inflate(LayoutInflater.java:466)
01-17 08:12:54.503: I/dalvikvm(880):   at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
01-17 08:12:54.503: I/dalvikvm(880):   at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
01-17 08:12:54.503: I/dalvikvm(880):   at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:270)
01-17 08:12:54.503: I/dalvikvm(880):   at android.app.Activity.setContentView(Activity.java:1881)
01-17 08:12:54.503: I/dalvikvm(880):   at com.example.solidshellsecurity.MainActivity.onCreate(MainActivity.java:18)
01-17 08:12:54.503: I/dalvikvm(880):   at android.app.Activity.performCreate(Activity.java:5104)
01-17 08:12:54.503: I/dalvikvm(880):   at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
01-17 08:12:54.513: I/dalvikvm(880):   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
01-17 08:12:54.513: I/dalvikvm(880):   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
01-17 08:12:54.513: I/dalvikvm(880):   at android.app.ActivityThread.access$600(ActivityThread.java:141)
01-17 08:12:54.513: I/dalvikvm(880):   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
01-17 08:12:54.513: I/dalvikvm(880):   at android.os.Handler.dispatchMessage(Handler.java:99)
01-17 08:12:54.513: I/dalvikvm(880):   at android.os.Looper.loop(Looper.java:137)
01-17 08:12:54.513: I/dalvikvm(880):   at android.app.ActivityThread.main(ActivityThread.java:5039)
01-17 08:12:54.513: I/dalvikvm(880):   at java.lang.reflect.Method.invokeNative(Native Method)
01-17 08:12:54.523: I/dalvikvm(880):   at java.lang.reflect.Method.invoke(Method.java:511)
01-17 08:12:54.523: I/dalvikvm(880):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
01-17 08:12:54.523: I/dalvikvm(880):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
01-17 08:12:54.523: I/dalvikvm(880):   at dalvik.system.NativeStart.main(Native Method)
01-17 08:12:54.523: D/skia(880): --- allocation failed for scaled bitmap
01-17 08:12:54.533: D/AndroidRuntime(880): Shutting down VM
01-17 08:12:54.533: W/dalvikvm(880): threadid=1: thread exiting with uncaught exception (group=0x40a70930)
01-17 08:12:54.563: E/AndroidRuntime(880): FATAL EXCEPTION: main
01-17 08:12:54.563: E/AndroidRuntime(880): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.solidshellsecurity/com.example.solidshellsecurity.MainActivity}: android.view.InflateException: Binary XML file line #1: Error inflating class android.widget.RelativeLayout
01-17 08:12:54.563: E/AndroidRuntime(880):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
01-17 08:12:54.563: E/AndroidRuntime(880):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
01-17 08:12:54.563: E/AndroidRuntime(880):  at android.app.ActivityThread.access$600(ActivityThread.java:141)
01-17 08:12:54.563: E/AndroidRuntime(880):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
01-17 08:12:54.563: E/AndroidRuntime(880):  at android.os.Handler.dispatchMessage(Handler.java:99)
01-17 08:12:54.563: E/AndroidRuntime(880):  at android.os.Looper.loop(Looper.java:137)
01-17 08:12:54.563: E/AndroidRuntime(880):  at android.app.ActivityThread.main(ActivityThread.java:5039)
01-17 08:12:54.563: E/AndroidRuntime(880):  at java.lang.reflect.Method.invokeNative(Native Method)
01-17 08:12:54.563: E/AndroidRuntime(880):  at java.lang.reflect.Method.invoke(Method.java:511)
01-17 08:12:54.563: E/AndroidRuntime(880):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
01-17 08:12:54.563: E/AndroidRuntime(880):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
01-17 08:12:54.563: E/AndroidRuntime(880):  at dalvik.system.NativeStart.main(Native Method)
01-17 08:12:54.563: E/AndroidRuntime(880): Caused by: android.view.InflateException: Binary XML file line #1: Error inflating class android.widget.RelativeLayout
01-17 08:12:54.563: E/AndroidRuntime(880):  at android.view.LayoutInflater.createView(LayoutInflater.java:613)
01-17 08:12:54.563: E/AndroidRuntime(880):  at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
01-17 08:12:54.563: E/AndroidRuntime(880):  at android.view.LayoutInflater.onCreateView(LayoutInflater.java:660)
01-17 08:12:54.563: E/AndroidRuntime(880):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685)
01-17 08:12:54.563: E/AndroidRuntime(880):  at android.view.LayoutInflater.inflate(LayoutInflater.java:466)
01-17 08:12:54.563: E/AndroidRuntime(880):  at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
01-17 08:12:54.563: E/AndroidRuntime(880):  at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
01-17 08:12:54.563: E/AndroidRuntime(880):  at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:270)
01-17 08:12:54.563: E/AndroidRuntime(880):  at android.app.Activity.setContentView(Activity.java:1881)
01-17 08:12:54.563: E/AndroidRuntime(880):  at com.example.solidshellsecurity.MainActivity.onCreate(MainActivity.java:18)
01-17 08:12:54.563: E/AndroidRuntime(880):  at android.app.Activity.performCreate(Activity.java:5104)
01-17 08:12:54.563: E/AndroidRuntime(880):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
01-17 08:12:54.563: E/AndroidRuntime(880):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
01-17 08:12:54.563: E/AndroidRuntime(880):  ... 11 more
01-17 08:12:54.563: E/AndroidRuntime(880): Caused by: java.lang.reflect.InvocationTargetException
01-17 08:12:54.563: E/AndroidRuntime(880):  at java.lang.reflect.Constructor.constructNative(Native Method)
01-17 08:12:54.563: E/AndroidRuntime(880):  at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
01-17 08:12:54.563: E/AndroidRuntime(880):  at android.view.LayoutInflater.createView(LayoutInflater.java:587)
01-17 08:12:54.563: E/AndroidRuntime(880):  ... 23 more
01-17 08:12:54.563: E/AndroidRuntime(880): Caused by: java.lang.OutOfMemoryError
01-17 08:12:54.563: E/AndroidRuntime(880):  at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
01-17 08:12:54.563: E/AndroidRuntime(880):  at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:502)
01-17 08:12:54.563: E/AndroidRuntime(880):  at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:355)
01-17 08:12:54.563: E/AndroidRuntime(880):  at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:785)
01-17 08:12:54.563: E/AndroidRuntime(880):  at android.content.res.Resources.loadDrawable(Resources.java:1965)
01-17 08:12:54.563: E/AndroidRuntime(880):  at android.content.res.TypedArray.getDrawable(TypedArray.java:601)
01-17 08:12:54.563: E/AndroidRuntime(880):  at android.view.View.<init>(View.java:3328)
01-17 08:12:54.563: E/AndroidRuntime(880):  at android.view.View.<init>(View.java:3257)
01-17 08:12:54.563: E/AndroidRuntime(880):  at android.view.ViewGroup.<init>(ViewGroup.java:425)
01-17 08:12:54.563: E/AndroidRuntime(880):  at android.widget.RelativeLayout.<init>(RelativeLayout.java:210)
01-17 08:12:54.563: E/AndroidRuntime(880):  ... 26 more
4

1 回答 1

3

你有大图像

01-17 08:12:54.563: E/AndroidRuntime(880): Caused by: java.lang.OutOfMemoryError

导致您内存不足的错误按比例缩小图像您可以使用以下代码段

public static Bitmap getResizedBitmap(Bitmap image, int newHeight, int newWidth) {
    int width = image.getWidth();
    int height = image.getHeight();
    float scaleWidth = ((float) newWidth) / width;
    float scaleHeight = ((float) newHeight) / height;
    // create a matrix for the manipulation
    Matrix matrix = new Matrix();
    // resize the bit map
    matrix.postScale(scaleWidth, scaleHeight);
    // recreate the new Bitmap
    Bitmap resizedBitmap = Bitmap.createBitmap(image, 0, 0, width, height,
            matrix, false);
    return resizedBitmap;
}
于 2013-01-17T08:51:31.040 回答