很遗憾,(应用名称)已停止。Eclipse/安卓

4

我是新手,想知道如何保留这个消息在Eclipse中

Unfortunately, (App Name) has stopped." 

每次在AVD中运行我的测试应用程序时,都会出现此错误。我试图创建一个LineView Layout,Eclipse未显示任何错误。那么,我该如何解决此问题?如果Eclipse没有显示问题,我该如何找出问题所在?
以下是我的Logcat复制:
05-29 23:49:12.604: D/AndroidRuntime(832): Shutting down VM
05-29 23:49:12.675: W/dalvikvm(832): threadid=1: thread exiting with uncaught exception (group=0x40a71930)
05-29 23:49:12.775: E/AndroidRuntime(832): FATAL EXCEPTION: main
05-29 23:49:12.775: E/AndroidRuntime(832): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{testing.android.application.three/testing.android.application.three.MainActivityThreeActivity}: java.lang.ClassNotFoundException: Didn't find class "testing.android.application.three.MainActivityThreeActivity" on path: /data/app/testing.android.application.three-1.apk
05-29 23:49:12.775: E/AndroidRuntime(832):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2106)
05-29 23:49:12.775: E/AndroidRuntime(832):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
05-29 23:49:12.775: E/AndroidRuntime(832):  at android.app.ActivityThread.access$600(ActivityThread.java:141)
05-29 23:49:12.775: E/AndroidRuntime(832):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
05-29 23:49:12.775: E/AndroidRuntime(832):  at android.os.Handler.dispatchMessage(Handler.java:99)
05-29 23:49:12.775: E/AndroidRuntime(832):  at android.os.Looper.loop(Looper.java:137)
05-29 23:49:12.775: E/AndroidRuntime(832):  at android.app.ActivityThread.main(ActivityThread.java:5041)
05-29 23:49:12.775: E/AndroidRuntime(832):  at java.lang.reflect.Method.invokeNative(Native Method)
05-29 23:49:12.775: E/AndroidRuntime(832):  at java.lang.reflect.Method.invoke(Method.java:511)
05-29 23:49:12.775: E/AndroidRuntime(832):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
05-29 23:49:12.775: E/AndroidRuntime(832):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
05-29 23:49:12.775: E/AndroidRuntime(832):  at dalvik.system.NativeStart.main(Native Method)
05-29 23:49:12.775: E/AndroidRuntime(832): Caused by: java.lang.ClassNotFoundException: Didn't find class "testing.android.application.three.MainActivityThreeActivity" on path: /data/app/testing.android.application.three-1.apk
05-29 23:49:12.775: E/AndroidRuntime(832):  at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:65)
05-29 23:49:12.775: E/AndroidRuntime(832):  at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
05-29 23:49:12.775: E/AndroidRuntime(832):  at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
05-29 23:49:12.775: E/AndroidRuntime(832):  at android.app.Instrumentation.newActivity(Instrumentation.java:1054)
05-29 23:49:12.775: E/AndroidRuntime(832):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2097)
05-29 23:49:12.775: E/AndroidRuntime(832):  ... 11 more
05-29 23:49:30.595: E/Trace(851): error opening trace file: No such file or directory (2)
05-29 23:49:30.965: D/AndroidRuntime(851): Shutting down VM
05-29 23:49:31.015: W/dalvikvm(851): threadid=1: thread exiting with uncaught exception (group=0x40a71930)
05-29 23:49:31.075: E/AndroidRuntime(851): FATAL EXCEPTION: main
05-29 23:49:31.075: E/AndroidRuntime(851): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{testing.android.application.three/testing.android.application.three.MainActivityThreeActivity}: java.lang.ClassNotFoundException: Didn't find class "testing.android.application.three.MainActivityThreeActivity" on path: /data/app/testing.android.application.three-1.apk
05-29 23:49:31.075: E/AndroidRuntime(851):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2106)
05-29 23:49:31.075: E/AndroidRuntime(851):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
05-29 23:49:31.075: E/AndroidRuntime(851):  at android.app.ActivityThread.access$600(ActivityThread.java:141)
05-29 23:49:31.075: E/AndroidRuntime(851):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
05-29 23:49:31.075: E/AndroidRuntime(851):  at android.os.Handler.dispatchMessage(Handler.java:99)
05-29 23:49:31.075: E/AndroidRuntime(851):  at android.os.Looper.loop(Looper.java:137)
05-29 23:49:31.075: E/AndroidRuntime(851):  at android.app.ActivityThread.main(ActivityThread.java:5041)
05-29 23:49:31.075: E/AndroidRuntime(851):  at java.lang.reflect.Method.invokeNative(Native Method)
05-29 23:49:31.075: E/AndroidRuntime(851):  at java.lang.reflect.Method.invoke(Method.java:511)
05-29 23:49:31.075: E/AndroidRuntime(851):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
05-29 23:49:31.075: E/AndroidRuntime(851):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
05-29 23:49:31.075: E/AndroidRuntime(851):  at dalvik.system.NativeStart.main(Native Method)
05-29 23:49:31.075: E/AndroidRuntime(851): Caused by: java.lang.ClassNotFoundException: Didn't find class "testing.android.application.three.MainActivityThreeActivity" on path: /data/app/testing.android.application.three-1.apk
05-29 23:49:31.075: E/AndroidRuntime(851):  at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:65)
05-29 23:49:31.075: E/AndroidRuntime(851):  at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
05-29 23:49:31.075: E/AndroidRuntime(851):  at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
05-29 23:49:31.075: E/AndroidRuntime(851):  at android.app.Instrumentation.newActivity(Instrumentation.java:1054)
05-29 23:49:31.075: E/AndroidRuntime(851):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2097)
05-29 23:49:31.075: E/AndroidRuntime(851):  ... 11 more
05-29 23:49:35.207: I/Process(851): Sending signal. PID: 851 SIG: 9

(这是我的activity_main_activity_three.xml副本)
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_horizontal_margin"
    android:paddingLeft="@dimen/activity_vertical_margin"
    android:paddingRight="@dimen/activity_vertical_margin"
    android:paddingTop="@dimen/activity_horizontal_margin"
    tools:context=".MainActivityThree" >
</LinearLayout>

这是我的MainActivityThree.java的副本:

package testing.android.application.three;

import android.os.Bundle;
import android.app.ListActivity;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivityThree extends ListActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //setContentView(R.layout.activity_main_activity_three);
        String[] names = new String[]{"Text 1","Text 2","Text 3","Text 4","Text 5","Text"};
        setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,names));   
    }

    @Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        // TODO Auto-generated method stub
        super.onListItemClick(l, v, position, id);
        Object o = this.getListAdapter().getItem(position);
        String keyword = o.toString();
        Toast.makeText(this, "Test 1" + keyword, Toast.LENGTH_LONG).show();
    }
}

(这是我的ThreeManifest副本)

(以下是需要翻译的内容)

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="testing.android.application.three"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="14"
        android:targetSdkVersion="17" />

    <application
        android:allowBackup="true"
        android:label="@string/AppName"
        android:icon="@drawable/ic_launcher"
        android:theme="@style/ThreeTheme">
        <activity
            android:name="testing.android.application.three.MainActivityThreeActivity"
            android:label="@string/AppName" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

5
LogCat是什么意思? - Raptor
1
我在代码中没有发现任何错误,而且当我运行代码时,它也能够正常工作。那么问题到底出在什么地方呢?请问您的 AVD 配置是怎样的? - igor.araujo
@igor.araujo 我正在使用Nexus 4作为我的AVD。即使在我的图形布局中,它仍然是空白的,为什么? - King Tutankhamun
@ShivanRaptor,我发布了我的Logcat运行应用程序的副本。 - King Tutankhamun
1个回答

3
看看你的LogCat和清单,你会发现你的activity类的名字与在manifest文件内显示的类名不同。
因此,为了解决这个问题,在你的manifest文件中更改这一行即可。
android:name="testing.android.application.three.MainActivityThreeActivity"

对于

android:name="testing.android.application.three.MainActivityThree"

这可能会解决问题!

记住,AndroidManifest文件“掌管”着您的应用程序。每个服务和活动,您想要使用的每个权限,都必须在清单文件中注册并正确执行,否则您将遇到类似于此类的崩溃。


谢谢朋友,我已经让应用程序启动了,但是图形布局仍然保持不变(空白)。 - King Tutankhamun
@igot.araujo 在ECLIPSE(空白)中,图形布局保持不变。在模拟器中,它显示为应该看起来的样子。我只是想澄清这一点。 - King Tutankhamun
1
这是预期的,因为您的布局为空(实际上它有一个LinearLayout,但它是空的)。如果您在布局中放置一个TextView,则它将出现在图形布局中。 例如: <LinearLayout ...> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Hello World!"/> </LinearLayout>但最重要的是:您甚至没有使用布局。您的活动是ListActivity,它使用适配器自动填充自己。您实际上正在使用一个名为android.R.layout.simple_list_item_1的默认Android布局。 - igor.araujo
请查看ListActivity文档,看看您是否理解它的工作原理。在该页面中,他们解释了如何为ListActivity使用自定义布局。正如我所说,目前您只是使用默认布局。 - igor.araujo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接