需要帮助解决为什么我的简单应用程序崩溃

时间:2013-04-21 12:09:18

标签: android

我刚刚开始尝试学习Java。我一直在教程之间跳过,试图找到一些基础知识。

目前它在启动画面上启动5秒钟然后转到另一个Action(正确的术语?),这是主页面(称为StartingPoint)。然而,它在这两页之间跳跃时崩溃。所以基本上,我的问题是它为什么这样做以及如何解决它?

我首先创建了主页面,并且可以自行运行。只是在试图在这两页之间跳转时。

清单 - 修改:

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

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="15" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".Splash"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

    <application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.jonysapp.test.StartingPoint"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="com.jonysapp.test.StartingPoint" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
</application>

Splash.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" 
android:background="@drawable/mirley"
>


</LinearLayout>

Splash.Java:我觉得这里的代码错了。也许最后尝试捕获?

package com.jonysapp.test;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;

public class Splash extends Activity{

@Override
protected void onCreate(Bundle MirleysVariable) {
    // TODO Auto-generated method stub
    super.onCreate(MirleysVariable);
    setContentView(R.layout.splash);
    Thread timer = new Thread(){
        public void run(){
            try{
                sleep(5000);

            } catch (InterruptedException e){
                e.printStackTrace();
            }finally{
                Intent openStartingPoint = new Intent(Splash.this, StartingPoint.class);
                Splash.this.startActivity(openStartingPoint);
            }
        }
    };
    timer.start();

}

}

StartingPoint.Java

package com.jonysapp.test;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class StartingPoint extends Activity {

int counter;
Button add, sub;
TextView display;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_starting_point);
    counter = 0;
    add = (Button) findViewById(R.id.bAdd);
    sub = (Button) findViewById(R.id.bSub);
    display = (TextView) findViewById(R.id.tvDisplay);
    add.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            counter++;
            display.setText("Your total is " + counter);

        }
    });
    sub.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            counter--;
            display.setText("Your total is " + counter);

        }
    });

}

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

}

logcat的:

04-21 12:48:08.004: D/dalvikvm(31290): GC_FOR_ALLOC freed 66K, 3% free 8887K/9091K, paused 16ms

04-21 12:48:08.014: I/dalvikvm-heap(31290): Grow heap (frag case) to 10.280MB for 1639696-byte allocation

04-21 12:48:08.044: D/dalvikvm(31290): GC_CONCURRENT freed 1K, 3% free 10487K/10759K, paused 2ms+2ms

04-21 12:48:08.084: D/TextLayoutCache(31290): Using debug level: 0 - Debug Enabled: 0

04-21 12:48:08.134: D/libEGL(31290): loaded /system/lib/egl/libGLES_android.so

04-21 12:48:08.134: D/libEGL(31290): loaded /system/lib/egl/libEGL_adreno200.so

04-21 12:48:08.144: D/libEGL(31290): loaded /system/lib/egl/libGLESv1_CM_adreno200.so

04-21 12:48:08.144: D/libEGL(31290): loaded /system/lib/egl/libGLESv2_adreno200.so

04-21 12:48:08.174: D/OpenGLRenderer(31290): Enabling debug mode 0

04-21 12:48:13.094: W/dalvikvm(31290): threadid=11: thread exiting with uncaught exception (group=0x2b542210)

04-21 12:48:13.094: E/AndroidRuntime(31290): FATAL EXCEPTION: Thread-2196

04-21 12:48:13.094: E/AndroidRuntime(31290): android.content.ActivityNotFoundException: Unable to find explicit activity class {com.jonysapp.test/com.jonysapp.test.StartingPoint}; have you declared this activity in your AndroidManifest.xml?

04-21 12:48:13.094: E/AndroidRuntime(31290): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1508)

04-21 12:48:13.094: E/AndroidRuntime(31290): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1384)

04-21 12:48:13.094: E/AndroidRuntime(31290): at android.app.Activity.startActivityForResult(Activity.java:3190)

04-21 12:48:13.094: E/AndroidRuntime(31290): at android.app.Activity.startActivity(Activity.java:3297)

04-21 12:48:13.094: E/AndroidRuntime(31290): at com.jonysapp.test.Splash$1.run(Splash.java:23)

04-21 12:48:13.364: D/OpenGLRenderer(31290): Flushing caches (mode 0)

04-21 12:48:13.404: D/OpenGLRenderer(31290): Flushing caches (mode 1)

我很可能已经为这个问题发布了太多代码,所以如果我过多地轰炸这个页面,我会道歉。虽然如果我错过了任何重要的帮助,请告诉我!

作为旁注,如果您有任何提示可以阻止我使用编码到目前为止的任何坏习惯,那将是值得赞赏的(但不是必需的)

再次感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

这是你的问题:

  

04-21 12:48:13.094:E / AndroidRuntime(31290):   android.content.ActivityNotFoundException:无法找到显式   活动类{com.jonysapp.test / com.jonysapp.test.StartingPoint };   您是否已在 AndroidManifest.xml

中声明了此活动

您必须在清单中声明活动,即

<activity
    android:name="com.example.project.StartingPoint"
    android:label="@string/app_name">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

p.s。:为应用启动器活动添加了intent-filter

希望这有帮助......干杯!

答案 1 :(得分:0)

看到这个消息:

  

04-21 12:48:13.094:E / AndroidRuntime(31290):   android.content.ActivityNotFoundException:无法找到显式   activity class {com.jonysapp.test / com.jonysapp.test.StartingPoint};   你有没有在AndroidManifest.xml中声明这个活动

这意味着您有一些尚未在清单文件中声明的活动。你在这里使用了所有的首都:

com.jonysapp.test.STARTINGPOINT

尝试制作:

com.jonysapp.test.StartingPoint. 

我想,类名是区分大小写的。 @Trinimon是对的。