应用程序在启动特定活动时崩溃

时间:2013-08-25 10:22:03

标签: android-activity crash

每次尝试启动RegisterActivity时,我的应用都会崩溃。我已经换掉了其他几个活动,按钮启动了它们。只是没有RegisterActivity。它在Manifest中并没有错误。我无法弄清楚这个问题。任何帮助将不胜感激。代码如下:

// Link to Register Screen
btnLinkToRegister.setOnClickListener(new View.OnClickListener() {           
        public void onClick(View v) {

          Intent intent = new Intent(v.getContext(), RegisterActivity.class);
          startActivityForResult(intent, 0);

崩溃应用程序的活动:

    package com.dip.allnavyinfo;

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

public class RegisterActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // Set View to register.xml
        setContentView(R.layout.register);

        TextView loginScreen = (TextView) findViewById(R.id.link_to_login);

        // Listening to Login Screen link
        loginScreen.setOnClickListener(new View.OnClickListener() {

            public void onClick(View arg0) {
                                // Closing registration screen
                // Switching to Login Screen/closing register screen
                finish();
            }
        });
    }
}

logcat的:

08-25 06:44:15.677: E/AndroidRuntime(1200): FATAL EXCEPTION: main
08-25 06:44:15.677: E/AndroidRuntime(1200): java.lang.RuntimeException: Unable to instantiate application android.app.Application: java.lang.IllegalStateException: Unable to get package info for com.dip.allnavyinfo; is package not installed?
08-25 06:44:15.677: E/AndroidRuntime(1200):     at android.app.LoadedApk.makeApplication(LoadedApk.java:509)
08-25 06:44:15.677: E/AndroidRuntime(1200):     at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4417)
08-25 06:44:15.677: E/AndroidRuntime(1200):     at android.app.ActivityThread.access$1300(ActivityThread.java:141)
08-25 06:44:15.677: E/AndroidRuntime(1200):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1316)
08-25 06:44:15.677: E/AndroidRuntime(1200):     at android.os.Handler.dispatchMessage(Handler.java:99)
08-25 06:44:15.677: E/AndroidRuntime(1200):     at android.os.Looper.loop(Looper.java:137)
08-25 06:44:15.677: E/AndroidRuntime(1200):     at android.app.ActivityThread.main(ActivityThread.java:5103)
08-25 06:44:15.677: E/AndroidRuntime(1200):     at java.lang.reflect.Method.invokeNative(Native Method)
08-25 06:44:15.677: E/AndroidRuntime(1200):     at java.lang.reflect.Method.invoke(Method.java:525)
08-25 06:44:15.677: E/AndroidRuntime(1200):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
08-25 06:44:15.677: E/AndroidRuntime(1200):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
08-25 06:44:15.677: E/AndroidRuntime(1200):     at dalvik.system.NativeStart.main(Native Method)
08-25 06:44:15.677: E/AndroidRuntime(1200): Caused by: java.lang.IllegalStateException: Unable to get package info for com.dip.allnavyinfo; is package not installed?
08-25 06:44:15.677: E/AndroidRuntime(1200):     at android.app.LoadedApk.initializeJavaContextClassLoader(LoadedApk.java:369)
08-25 06:44:15.677: E/AndroidRuntime(1200):     at android.app.LoadedApk.getClassLoader(LoadedApk.java:322)
08-25 06:44:15.677: E/AndroidRuntime(1200):     at android.app.LoadedApk.makeApplication(LoadedApk.java:501)
08-25 06:44:15.677: E/AndroidRuntime(1200):     ... 11 more

清单:

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

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

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >

        <activity
            android:name=".SplashScreenActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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



        <!-- Main Activity -->
        <activity
            android:name=".MainActivity"
            android:label="@string/main" >
        </activity>


        <activity 
            android:name=".Bibs"
            android:label="@string/title_activity_bibs" >
        </activity>

        <activity
            android:name=".LoginActivity"
            android:label="@string/lgnlbl">
        </activity>

        <activity 
            android:name=".RegisterActivity"
            android:label="@string/reglbl">
        </activity>

    </application>

    <uses-permission 
        android:name="android.permission.INTERNET" />


</manifest>

2 个答案:

答案 0 :(得分:0)

1-确保您已在Manifest中定义了活动RegisterActivity

2-改变这个:

    Intent intent = new Intent(v.getContext(), RegisterActivity.class);
    startActivityForResult(intent, 0);

进入

    Intent intent = new Intent(yourCurrentActivity.this, RegisterActivity.class);
    startActivity(intent);

答案 1 :(得分:0)

我有同样的问题,我通过整理我的异步任务来修复它。我在同一个线程中进行了两次调用,一旦我将它们分成两个线程,问题就解决了。

相关问题