【问题标题】:Getting crash on android在android上崩溃
【发布时间】:2014-02-19 22:21:07
【问题描述】:

在我尝试添加日期之前,我的所有代码都可以正常工作。当我这样做时,应用程序在启动时崩溃。这是我目前所拥有的:

activity_main.xml:

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

<!-- Header -->



<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="#000000"
    android:textColor="#FFFFFF"
    android:gravity="center"
    android:layout_marginTop="20dp"
    android:id="@+id/Header"
    android:text=""
/>

<!-- Name -->

<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="50dp"
    android:id="@+id/Name"
    android:text="" 
/>

<!-- Project Name -->

<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="50dp"
    android:id="@+id/ProjectName"
    android:text=""    
/>

<!-- Digital Clock -->

<DigitalClock
    android:id="@+id/DigitalClock"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="50dp"
    android:text="" 
/>

<!-- Calendar -->

<TextView
    android:id="@+id/stringCalendar"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="50dp"
    android:text="" 
/>

<!-- End of Program -->

<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textColor="#FFFFFF"
    android:background="#000000"
    android:gravity="center"
    android:id="@+id/EndOfProgram"
    android:text=""
/>

</LinearLayout>

MainActivity.java:

package com.example.d1project1;

import java.util.Calendar;

import android.os.Bundle;
import android.app.Activity;
import android.widget.DigitalClock;

import android.widget.TextView;

@SuppressWarnings({ "deprecation", "unused" })
public class MainActivity extends Activity {
    //Declare GUI objects

    TextView stringHeader;
    TextView stringName;        
    TextView stringProject;
    TextView digitalClock1;
    TextView stringEnd;

    TextView stringCalendar;
    TextView stringDisplay;
    DigitalClock DigitalClock;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Init_GUI();
        DigitalClock();
        Nonevent_Event();
    }

    private void DigitalClock() {
        //DigitalClock
        DigitalClock = (DigitalClock)findViewById(R.id.DigitalClock);
    }
    private void Nonevent_Event() {
        String stringDate = "";

        Date_Class.date_time(stringCalendar);

        stringCalendar.setText(stringDate);
    }

    //method to link GUI items to code 
    private void Init_GUI() {
        stringHeader = (TextView)findViewById(R.id.Header);
        stringName = (TextView)findViewById(R.id.Name);
        stringProject = (TextView)findViewById(R.id.ProjectName);
        stringEnd = (TextView)findViewById(R.id.EndOfProgram);

        stringHeader.setText("Day 1 Project 1 - Travis Finlan");
        stringName.setText("Travis Finlan");
        stringProject.setText("Day 1 Project 1");
        stringEnd.setText("End of Program");
    }
}

Date_Class.java:

package com.example.d1project1;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Calendar;

import android.widget.DigitalClock;
import android.widget.TextClock;
import android.widget.TextView;

public class Date_Class {
    public static String date_time(TextView stringCalendar) {
        //Calendar
        Calendar c = Calendar.getInstance();
        System.out.println("Current time => " + c.getTime());

        SimpleDateFormat df = new SimpleDateFormat("dd-MMM-yyyy");
        String formattedDate = df.format(c.getTime());

        return formattedDate;
    }
}

另外,如果您发现任何错误,请告诉我。我似乎无法弄清楚为什么它总是在我身上崩溃。我只希望它显示当前日期和当前时间。我必须拥有非实例化类中的所有方法,因此必须将它们拉过来。

LogCat 信息

02-19 17:02:17.785: DEBUG/AndroidRuntime(2095): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<
02-19 17:02:17.785: DEBUG/AndroidRuntime(2095): CheckJNI is ON
02-19 17:02:17.885: DEBUG/AndroidRuntime(2095): --- registering native functions ---
02-19 17:02:17.915: INFO/jdwp(2095): Ignoring second debugger -- accepting and dropping
02-19 17:02:18.305: DEBUG/AndroidRuntime(2095): Shutting down VM
02-19 17:02:18.305: DEBUG/dalvikvm(2095): Debugger has detached; object registry had 1 entries
02-19 17:02:18.327: INFO/AndroidRuntime(2095): NOTE: attach of thread 'Binder Thread #3' failed
02-19 17:02:18.635: DEBUG/AndroidRuntime(2103): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<
02-19 17:02:18.635: DEBUG/AndroidRuntime(2103): CheckJNI is ON
02-19 17:02:18.736: DEBUG/AndroidRuntime(2103): --- registering native functions ---
02-19 17:02:18.755: INFO/jdwp(2103): Ignoring second debugger -- accepting and dropping
02-19 17:02:19.175: INFO/ActivityManager(59): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.example.d1project1/.MainActivity }
02-19 17:02:19.195: INFO/ActivityManager(59): Start proc com.example.d1project1 for activity com.example.d1project1/.MainActivity: pid=2109 uid=10036 gids={}
02-19 17:02:19.225: DEBUG/AndroidRuntime(2103): Shutting down VM
02-19 17:02:19.225: DEBUG/dalvikvm(2103): Debugger has detached; object registry had 1 entries
02-19 17:02:19.275: INFO/dalvikvm(2103): JNI: AttachCurrentThread (from ???.???)
02-19 17:02:19.275: INFO/AndroidRuntime(2103): NOTE: attach of thread 'Binder Thread #3' failed
02-19 17:02:19.365: INFO/jdwp(2109): Ignoring second debugger -- accepting and dropping
02-19 17:02:19.679: INFO/System.out(2109): Current time => Wed Feb 19 17:02:19 CST 2014
02-19 17:02:19.686: DEBUG/AndroidRuntime(2109): Shutting down VM
02-19 17:02:19.686: WARN/dalvikvm(2109): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
02-19 17:02:19.696: ERROR/AndroidRuntime(2109): FATAL EXCEPTION: main
02-19 17:02:19.696: ERROR/AndroidRuntime(2109): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.d1project1/com.example.d1project1.MainActivity}: java.lang.NullPointerException
02-19 17:02:19.696: ERROR/AndroidRuntime(2109):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
02-19 17:02:19.696: ERROR/AndroidRuntime(2109):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
02-19 17:02:19.696: ERROR/AndroidRuntime(2109):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)
02-19 17:02:19.696: ERROR/AndroidRuntime(2109):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
02-19 17:02:19.696: ERROR/AndroidRuntime(2109):     at android.os.Handler.dispatchMessage(Handler.java:99)
02-19 17:02:19.696: ERROR/AndroidRuntime(2109):     at android.os.Looper.loop(Looper.java:123)
02-19 17:02:19.696: ERROR/AndroidRuntime(2109):     at android.app.ActivityThread.main(ActivityThread.java:4627)
02-19 17:02:19.696: ERROR/AndroidRuntime(2109):     at java.lang.reflect.Method.invokeNative(Native Method)
02-19 17:02:19.696: ERROR/AndroidRuntime(2109):     at java.lang.reflect.Method.invoke(Method.java:521)
02-19 17:02:19.696: ERROR/AndroidRuntime(2109):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
02-19 17:02:19.696: ERROR/AndroidRuntime(2109):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
02-19 17:02:19.696: ERROR/AndroidRuntime(2109):     at dalvik.system.NativeStart.main(Native Method)
02-19 17:02:19.696: ERROR/AndroidRuntime(2109): Caused by: java.lang.NullPointerException
02-19 17:02:19.696: ERROR/AndroidRuntime(2109):     at com.example.d1project1.MainActivity.Nonevent_Event(MainActivity.java:44)
02-19 17:02:19.696: ERROR/AndroidRuntime(2109):     at com.example.d1project1.MainActivity.onCreate(MainActivity.java:32)
02-19 17:02:19.696: ERROR/AndroidRuntime(2109):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
02-19 17:02:19.696: ERROR/AndroidRuntime(2109):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
02-19 17:02:19.696: ERROR/AndroidRuntime(2109):     ... 11 more
02-19 17:02:19.706: WARN/ActivityManager(59):   Force finishing activity com.example.d1project1/.MainActivity
02-19 17:02:19.706: WARN/ActivityManager(59):   Force finishing activity com.android.mms/.ui.ConversationList
02-19 17:02:20.206: WARN/ActivityManager(59): Activity pause timeout for HistoryRecord{4a4c5dd0 com.example.d1project1/.MainActivity}
02-19 17:02:24.827: INFO/Process(2109): Sending signal. PID: 2109 SIG: 9
02-19 17:02:24.846: INFO/ActivityManager(59): Process com.example.d1project1 (pid 2109) has died.
02-19 17:02:26.416: DEBUG/dalvikvm(233): GC_EXPLICIT freed 4119 objects / 277728 bytes in 123ms
02-19 17:02:31.137: WARN/ActivityManager(59): Activity destroy timeout for HistoryRecord{4a4c5dd0 com.example.d1project1/.MainActivity}
02-19 17:02:39.466: DEBUG/SntpClient(59): request time failed: java.net.SocketException: Address family not supported by protocol

【问题讨论】:

  • 请贴出logcat的输出,以便我们查看崩溃的原因。
  • @Ameen 我如何获得 logcat 的输出?我进去了,那里什么都没有。
  • 通常情况下,您的 IDE(Eclipse、Android Studio 等)会为您打印 logcat 输出。也可以通过 adb 命令手动获取,见developer.android.com/tools/help/logcat.html
  • @Ameen 我已经添加进去了
  • Henry 的回应似乎指向了这个问题。 stringCalendar 为空(您可能希望在 InitGUI 方法中设置它的值)

标签: java android date date-format android-calendar


【解决方案1】:

您永远不会在 MainActivity 类中设置字段 stringCalendar。因此,您会从这一行得到NullPointerException

stringCalendar.setText(stringDate);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-10-02
    • 2012-09-10
    • 2016-11-17
    • 2014-12-25
    • 2012-10-17
    • 2019-05-11
    • 2012-12-22
    相关资源
    最近更新 更多