本文介绍了而正在进行的另一项活动Android应用程序的力量关闭的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在采用Android 2.2和Eclipse的Andr​​oid应用程序。

有该应用程序的两个工作流:

WF1: CoverPageApp - > LoginActivity - >仪表板。

WF2: CoverPageApp - > RegisterActivity - >仪表板。

但是,当我点击开始按钮CoverPageApp去另一个活动,即LoginActivity,该应用程序的力量关闭。我也包括这说明空例外,在LoginActivity的Java文件指向上线51错误的LogCat中:  btnLinkToRegistrScrn =(按钮)findViewById(R.id.LinkToRegisterScreen);

AndroidManifest.xml中

 < XML版本=1.0编码=UTF-8&GT?;
<舱单的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    包=com.app.android
    安卓版code =1
    机器人:VERSIONNAME =1.0>

    <使用-SDK机器人:targetSdkVersion =15安卓的minSdkVersion =8/>

    <使用-权限的Andr​​oid:名称=android.permission.ACCESS_FINE_LOCATION/>
    <使用-权限的Andr​​oid:名称=android.permission.INTERNET对/>

    <应用
        机器人:图标=@可绘制/ ic_launcher
        机器人:标签=@字符串/ APP_NAME>

        <活动
            机器人:启用=真
            机器人:名称=。PageApp
            机器人:标签=@字符串/ APP_NAME>
            <意向滤光器>
                <作用机器人:名称=android.intent.action.MAIN/>

                <类机器人:名称=android.intent.category.LAUNCHER/>
            &所述; /意图滤光器>
        < /活性GT;

        <活动
            机器人:启用=真
            机器人:名称=。LoginActivity1
            机器人:标签=登录活动>
        < /活性GT;

        <活动
            机器人:启用=真
            机器人:名称=。CAActivity
            机器人:标签=注册活动>
        < /活性GT;

        <活动
            机器人:启用=真
            机器人:DashboardActivityNAME =
            机器人:标签=仪表盘活动>
        < /活性GT;

    < /用途>

  < /舱单>
 

PageApp.java

 进口android.app.Activity;
进口android.os.Bundle;
//进口android.content.Context;
进口android.content.Intent;
进口android.widget.Button;
进口android.view.View;

公共类PageApp延伸活动{

    按钮startbutton;

    / **第一次创建活动时调用。 * /
    @覆盖
    公共无效的onCreate(包savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.coverpage);
        addListenerOnButton();
   }


    公共无效addListenerOnButton(){

        //最后的语境CONTEXT1 =这一点;

        startbutton =(按钮)findViewById(R.id.button1);

        startbutton.setOnClickListener(新View.OnClickListener(){

            @覆盖
            公共无效的onClick(查看为arg0){
                意图int​​ent1 =新的意图(arg0.getContext(),LoginActivity1.class);
            // intent1.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(intent1);
                完();
                }
            });

    }

}
 

Log.java

 进口android.app.Activity;
//进口android.content.Context;
进口android.content.Intent;
进口android.os.Bundle;
进口android.view.View;
//进口android.view.View.OnClickListener;
进口android.widget.Button;
//进口android.widget.TextView;


公共类日志扩展活动{

    按钮btnLinkToRegistrScrn;
    按钮loginbtn1;

    / **第一次创建活动时调用。 * /
    @覆盖
    公共无效的onCreate(包savedInstanceState){
        super.onCreate(savedInstanceState);
     的setContentView(R.layout.login);
     addListenerOnButton();
// btnLinkToRegistrScrn =(按钮)findViewById(R.id.LinkToRegisterScreen);

   }


    公共无效addListenerOnButton(){

        //最后的语境context2 =这一点;

            loginbtn1 =(按钮)findViewById(R.id.btnLogin);

            loginbtn1.setOnClickListener(新View.OnClickListener(){

            @覆盖
            公共无效的onClick(查看为arg0){

                意向意图=新的意图(arg0.getContext(),DashboardActivity.class);
                intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                         startActivity(意向);
            }

        });
    }


    {
        //链接到注册屏幕
        btnLinkToRegistrScrn =(按钮)findViewById(R.id.LinkToRegisterScreen);
        btnLinkToRegistrScrn.setOnClickListener(新View.OnClickListener(){
           @覆盖
            公共无效的onClick(视图v){
                意图I =新的意图(v.getContext(),CAaactivity.class);
              // i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(ⅰ);
                }
       });

    }

   }
 

的logcat

  05-31 17:53:19.691:D / AndroidRuntime(1958年):关闭虚拟机
05-31 17:53:19.710:W / dalvikvm(1958年):主题ID = 1:螺纹退出与未捕获的异常(组= 0x4001d800)
05-31 17:53:19.730:E / AndroidRuntime(1958年):致命异常:主要
05-31 17:53:19.730:E / AndroidRuntime(1958年):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585)
05-31 17:53:19.730:E / AndroidRuntime(1958年):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
05-31 17:53:19.730:E / AndroidRuntime(1958年):在android.app.ActivityThread.access $ 2300(ActivityThread.java:125)
05-31 17:53:19.730:E / AndroidRuntime(1958年):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:2033)
05-31 17:53:19.730:E / AndroidRuntime(1958年):在android.os.Handler.dispatchMessage(Handler.java:99)
05-31 17:53:19.730:E / AndroidRuntime(1958年):在android.os.Looper.loop(Looper.java:123)
05-31 17:53:19.730:E / AndroidRuntime(1958年):在android.app.ActivityThread.main(ActivityThread.java:4627)
05-31 17:53:19.730:E / AndroidRuntime(1958年):在java.lang.reflect.Method.invokeNative(本机方法)
05-31 17:53:19.730:E / AndroidRuntime(1958年):在java.lang.reflect.Method.invoke(Method.java:521)
05-31 17:53:19.730:E / AndroidRuntime(1958年):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:868)
05-31 17:53:19.730:E / AndroidRuntime(1958年):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
05-31 17:53:19.730:E / AndroidRuntime(1958年):在dalvik.system.NativeStart.main(本机方法)
05-31 17:53:19.730:E / AndroidRuntime(1958年):由:显示java.lang.NullPointerException
05-31 17:53:19.730:E / AndroidRuntime(1958年):在android.app.Activity.findViewById \不定时(1958年):在java.lang.Class.newInstanceImpl(本机方法)
05-31 17:53:19.730:E / AndroidRuntime(1958年):在java.lang.Class.newInstance(Class.java:1429)
05-31 17:53:19.730:E / AndroidRuntime(1958年):在android.app.Instrumentation.newActivity(Instrumentation.java:1021)
05-31 17:53:19.730:E / AndroidRuntime(1958年):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577)
05-31 17:53:19.730:E / AndroidRuntime(1958):11 ...更多
 

解决方案

更​​改您的 LoginActivity1 活动为:

 公共类LoginActivity1延伸活动{

    按钮btnLinkToRegistrScrn;
    按钮loginbtn1;

    / **第一次创建活动时调用。 * /
    @覆盖
    公共无效的onCreate(包savedInstanceState){
        super.onCreate(savedInstanceState);
     的setContentView(R.layout.login);
     addListenerOnButton();
        //链接到注册屏幕
        btnLinkToRegistrScrn =(按钮)findViewById(R.id.LinkToRegisterScreen);
        btnLinkToRegistrScrn.setOnClickListener(新View.OnClickListener(){
           @覆盖
            公共无效的onClick(视图v){
                意图I =新的意图(v.getContext(),TrekEyesAndroidActivity.class);
              // i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(ⅰ);
                }
       });
   }
    公共无效addListenerOnButton(){

        //最后的语境context2 =这一点;

            loginbtn1 =(按钮)findViewById(R.id.btnLogin);

            loginbtn1.setOnClickListener(新View.OnClickListener(){

            @覆盖
            公共无效的onClick(查看为arg0){

                意向意图=新的意图(arg0.getContext(),DashboardActivity.class);
                intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                         startActivity(意向);
            }

        });
    }
   }
 

在XML改变的TextView 按钮作为

 <按钮
         机器人:ID =@ + ID / LinkToRegisterScreen
            机器人:layout_width =FILL_PARENT
            机器人:layout_height =WRAP_CONTENT
            机器人:layout_gravity =中心
            机器人:layout_marginTop =25dip

            机器人:文字颜色=#21dbd4
            机器人:TEXTSTYLE =黑体
            机器人:文本=@字符串/ noAccountRegisterME/>
 

I am making an android app using android 2.2 and eclipse.

There are two workflows of the app:

WF1: CoverPageApp -> LoginActivity -> Dashboard.

WF2: CoverPageApp -> RegisterActivity -> Dashboard.

But as I click on the Start Button in CoverPageApp to go on another activity, i.e LoginActivity, the app force closes.I have also included the LogCat which shows error of Null Exception and in the LoginActivity Java File it points on the line 51: btnLinkToRegistrScrn = (Button) findViewById(R.id.LinkToRegisterScreen);

AndroidManifest.xml

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

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

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

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >

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

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

        <activity
            android:enabled="true"
            android:name=".LoginActivity1"
            android:label="Login Activity" >
        </activity>

        <activity
            android:enabled="true"
            android:name=".CAActivity"
            android:label="Register Activity" >
        </activity>

        <activity
            android:enabled="true"
            android:name=".DashboardActivity"
            android:label="Dashboard Activity" >
        </activity>

    </application>

  </manifest>

PageApp.java

import android.app.Activity;
import android.os.Bundle;
//import android.content.Context;
import android.content.Intent;
import android.widget.Button;
import android.view.View;

public class PageApp extends Activity {

    Button startbutton;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.coverpage);
        addListenerOnButton();
   }


    public void addListenerOnButton() {

        //final Context context1 = this;

        startbutton = (Button) findViewById(R.id.button1);

        startbutton.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View arg0) {
                Intent intent1 = new Intent(arg0.getContext(), LoginActivity1.class);
            //    intent1.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(intent1);
                finish();
                }
            });

    }

}

Log.java

import android.app.Activity;
//import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
//import android.view.View.OnClickListener;
import android.widget.Button;
//import android.widget.TextView;


public class Log extends Activity {

    Button btnLinkToRegistrScrn;
    Button loginbtn1;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
     setContentView(R.layout.login);
     addListenerOnButton();
//     btnLinkToRegistrScrn = (Button) findViewById(R.id.LinkToRegisterScreen);

   }


    public void addListenerOnButton() {

        //final Context context2 = this;

            loginbtn1 = (Button) findViewById(R.id.btnLogin);

            loginbtn1.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View arg0) {

                Intent intent = new Intent(arg0.getContext(), DashboardActivity.class);
                intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                         startActivity(intent);
            }

        });
    }


    {
        // Link to Register Screen
        btnLinkToRegistrScrn = (Button) findViewById(R.id.LinkToRegisterScreen);
        btnLinkToRegistrScrn.setOnClickListener(new View.OnClickListener() {
           @Override
            public void onClick(View v) {
                Intent i = new Intent(v.getContext(), CAaactivity.class);
              //  i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(i);
                }
       });

    }

   }

LOGCAT

05-31 17:53:19.691: D/AndroidRuntime(1958): Shutting down VM
05-31 17:53:19.710: W/dalvikvm(1958): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
05-31 17:53:19.730: E/AndroidRuntime(1958): FATAL EXCEPTION: main
05-31 17:53:19.730: E/AndroidRuntime(1958):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585)
05-31 17:53:19.730: E/AndroidRuntime(1958):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
05-31 17:53:19.730: E/AndroidRuntime(1958):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)
05-31 17:53:19.730: E/AndroidRuntime(1958):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
05-31 17:53:19.730: E/AndroidRuntime(1958):     at android.os.Handler.dispatchMessage(Handler.java:99)
05-31 17:53:19.730: E/AndroidRuntime(1958):     at android.os.Looper.loop(Looper.java:123)
05-31 17:53:19.730: E/AndroidRuntime(1958):     at android.app.ActivityThread.main(ActivityThread.java:4627)
05-31 17:53:19.730: E/AndroidRuntime(1958):     at java.lang.reflect.Method.invokeNative(Native Method)
05-31 17:53:19.730: E/AndroidRuntime(1958):     at java.lang.reflect.Method.invoke(Method.java:521)
05-31 17:53:19.730: E/AndroidRuntime(1958):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
05-31 17:53:19.730: E/AndroidRuntime(1958):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
05-31 17:53:19.730: E/AndroidRuntime(1958):     at dalvik.system.NativeStart.main(Native Method)
05-31 17:53:19.730: E/AndroidRuntime(1958): Caused by: java.lang.NullPointerException
05-31 17:53:19.730: E/AndroidRuntime(1958):     at android.app.Activity.findViewById\untime(1958):  at java.lang.Class.newInstanceImpl(Native Method)
05-31 17:53:19.730: E/AndroidRuntime(1958):     at java.lang.Class.newInstance(Class.java:1429)
05-31 17:53:19.730: E/AndroidRuntime(1958):     at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
05-31 17:53:19.730: E/AndroidRuntime(1958):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577)
05-31 17:53:19.730: E/AndroidRuntime(1958):     ... 11 more
解决方案

Change Your LoginActivity1 Activity as:

public class LoginActivity1 extends Activity {

    Button btnLinkToRegistrScrn;
    Button loginbtn1;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
     setContentView(R.layout.login);
     addListenerOnButton();
        // Link to Register Screen
        btnLinkToRegistrScrn = (Button) findViewById(R.id.LinkToRegisterScreen);
        btnLinkToRegistrScrn.setOnClickListener(new View.OnClickListener() {
           @Override
            public void onClick(View v) {
                Intent i = new Intent(v.getContext(), TrekEyesAndroidActivity.class);
              //  i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(i);
                }
       });
   }
    public void addListenerOnButton() {

        //final Context context2 = this;

            loginbtn1 = (Button) findViewById(R.id.btnLogin);

            loginbtn1.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View arg0) {

                Intent intent = new Intent(arg0.getContext(), DashboardActivity.class);
                intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                         startActivity(intent);
            }

        });
    }
   }

and in xml change TextView to Button as

<Button
         android:id="@+id/LinkToRegisterScreen"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginTop="25dip"

            android:textColor="#21dbd4"
            android:textStyle="bold"
            android:text="@string/noAccountRegisterME" />

这篇关于而正在进行的另一项活动Android应用程序的力量关闭的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-01 16:34