0

我的应用程序意外关闭,但这很奇怪,因为我正处于开发的开始阶段,所以该应用程序没有任何特别之处!我的第一堂课:

package it.mi.action.codmmunicator_2ddecoder;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;

public class Loading extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
            requestWindowFeature(Window.FEATURE_NO_TITLE);
            getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.loading);
    final int tempodiattesa=3000;
    Thread schermataattesa=new Thread(){
        int aspetta=0;
        @Override
        public void run(){
            try{
                super.run();
                while(aspetta<tempodiattesa){
                    sleep(100);
                    aspetta+=100;
                }
            }catch(Exception e){
                System.out.println("EXc="+e);
            }finally{
                startActivity(new      Intent(Loading.this,Lettore.class));
                finish();
            }
        }
    };
    schermataattesa.start();
}
}

第二个:

package it.mi.action.codmmunicator_2ddecoder;

import android.app.Activity;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;

public class Lettore extends Activity {
@Override
public void onCreate(Bundle savedInstanceState){
    requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.lettore);
}
}

当它上第二节课时,它崩溃了。xml 是一个正常的线性布局,上面有一个图像。

我确定android清单是正确的:

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

<uses-sdk android:minSdkVersion="10" />
<uses-permission android:name="android.permission.CAMERA"/>

<application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar">
    <activity android:name="Loading" android:label="@string/app_name" android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name="Lettore" android:screenOrientation="portrait" android:label="@string/app_name"></activity>
</application>

</manifest>

如果我让应用程序从 Lettore 开始,它就会崩溃。我认为问题出在 Lettore.java 上,但这很荒谬

有人能帮我吗?看到不正常?

这是我的日志:

06-28 13:41:25.322: D/dalvikvm(403): GC_EXTERNAL_ALLOC freed 51K, 53% free 2552K/5379K, external 716K/1038K, paused 61ms

06-28 13:41:29.353: D/AndroidRuntime(403): Shutting down VM

06-28 13:41:29.353: W/dalvikvm(403): threadid=1: thread exiting with uncaught exception (group=0x40015560)

06-28 13:41:29.363: E/AndroidRuntime(403): FATAL EXCEPTION: main

06-28 13:41:29.363: E/AndroidRuntime(403): android.app.SuperNotCalledException: Activity {it.mi.action.codmmunicator_2ddecoder/it.mi.action.codmmunicator_2ddecoder.Lettore} did not call through to super.onCreate()

06-28 13:41:29.363: E/AndroidRuntime(403):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1613)

06-28 13:41:29.363: E/AndroidRuntime(403):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)

06-28 13:41:29.363: E/AndroidRuntime(403):  at android.app.ActivityThread.access$1500(ActivityThread.java:117)

06-28 13:41:29.363: E/AndroidRuntime(403):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)

06-28 13:41:29.363: E/AndroidRuntime(403):  at android.os.Handler.dispatchMessage(Handler.java:99)

06-28 13:41:29.363: E/AndroidRuntime(403):  at android.os.Looper.loop(Looper.java:123)

06-28 13:41:29.363: E/AndroidRuntime(403):  at android.app.ActivityThread.main(ActivityThread.java:3683)

06-28 13:41:29.363: E/AndroidRuntime(403):  at java.lang.reflect.Method.invokeNative(Native Method)

06-28 13:41:29.363: E/AndroidRuntime(403):  at java.lang.reflect.Method.invoke(Method.java:507)

06-28 13:41:29.363: E/AndroidRuntime(403):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)

06-28 13:41:29.363: E/AndroidRuntime(403):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)

06-28 13:41:29.363: E/AndroidRuntime(403):  at dalvik.system.NativeStart.main(Native Method)

06-28 13:41:32.083: I/Process(403): Sending signal. PID: 403 SIG: 9

我确定android清单是正确的:

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

<uses-sdk android:minSdkVersion="10" />
<uses-permission android:name="android.permission.CAMERA"/>

<application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar">
    <activity android:name="Loading" android:label="@string/app_name" android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name="Lettore" android:screenOrientation="portrait" android:label="@string/app_name"></activity>
</application>

</manifest>

如果我让应用程序从 Lettore 开始,它就会崩溃。我认为问题出在 Lettore.java 上,但这很荒谬

4

3 回答 3

2
super.onCreate() is missing in Lettore class

..

public void onCreate(Bundle savedInstanceState){
      super.onCreate(); //<-----------------------------add this
    requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.lettore);
}

1 - 确认您是否将 Lettore 的条目放在清单中。

于 2012-06-28T13:23:37.740 回答
2

将您的代码更改为:
替换finally块:

finally{
                startActivity(new      Intent(Loading.this,Lettore.class));
                finish();
            }

   finally{
        Loading.this.runOnUiThread(new Runnable() {     
                 @Override
                 public void run() {
                  // TODO Auto-generated method stub
                  Loading.this.startActivity(new Intent(Loading.this,Lettore.class));
                  finish();
}
                });

        }

并确保您已在 manifast.xml 中将您的 Lettore 活动注册为:

<Activity android:name=".Lettore" />

编辑:添加 super.onCreate(savedInstanceState); 在 Lettore 活动中为:

package it.mi.action.codmmunicator_2ddecoder;

import android.app.Activity;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;

public class Lettore extends Activity {
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.lettore);
}
}
于 2012-06-28T13:25:52.627 回答
2

添加

super.onCreate( savedInstanceState );

到你的代码

于 2012-06-28T13:47:25.573 回答