尝试使用片段运行我的示例Android应用程序时模拟器崩溃

时间:2016-02-15 16:04:31

标签: android android-fragments fragmentmanager

所以我跟随“Android编程大书呆子牧场指南”

片段是:

package com.bignerdranch.android.criminalintent;

import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.EditText;

/**
 * A placeholder fragment containing a simple view.
 */
public class CrimeFragment extends Fragment {

    private Crime mCrime;
    private EditText mTitleField;
    private Button mDateButton;
    private CheckBox mSolvedCheckBox;
    public CrimeFragment() {
    }
    public  void onCreate(Bundle savedInstanceState){

        super.onCreate(savedInstanceState);
        mCrime = new Crime();
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View v =  inflater.inflate(R.layout.fragment_crime, container, false);

        mTitleField = (EditText)v.findViewById(R.id.crime_title);
        mTitleField.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
            mCrime.setmTitle(s.toString());

            }

            @Override
            public void afterTextChanged(Editable s) {

            }
        });

        mDateButton = (Button)v.findViewById(R.id.crime_date);
        mDateButton.setText(mCrime.getmDate().toString());
        mDateButton.setEnabled(false);

        mSolvedCheckBox = (CheckBox)v.findViewById(R.id.crime_solved);
        mSolvedCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                mCrime.setmSolved(isChecked);
            }
        });
return v;
    }
}

当我运行它时,它甚至没有启动和崩溃。这是日志消息。我不确定它是什么导致它崩溃,因为它成功构建并且似乎没有任何我能看到的致命错误。我已经尝试过清理代码了。

  criminalintent I/art: Not late-enabling -Xcheck:jni (already on)
    02-15 15:47:44.720 2132-2132/com.bignerdranch.android.criminalintent I/art: Late-enabling JIT
    02-15 15:47:44.821 2132-2132/com.bignerdranch.android.criminalintent I/art: JIT created with code_cache_capacity=2MB compile_threshold=1000
    02-15 15:47:45.158 2132-2132/com.bignerdranch.android.criminalintent W/System: ClassLoader referenced unknown path: /data/app/com.bignerdranch.android.criminalintent-2/lib/x86
    02-15 15:47:45.958 2132-2139/com.bignerdranch.android.criminalintent W/art: Suspending all threads took: 25.901ms
    02-15 15:47:46.301 2132-2132/com.bignerdranch.android.criminalintent D/AndroidRuntime: Shutting down VM
    02-15 15:47:46.303 2132-2132/com.bignerdranch.android.criminalintent E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.bignerdranch.android.criminalintent, PID: 2132
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.bignerdranch.android.criminalintent/com.bignerdranch.android.criminalintent.CrimeActivity}: android.view.InflateException: Binary XML file line #29: Binary XML file line #1: Error inflating class fragment
  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
   at android.app.ActivityThread.-wrap11(ActivityThread.java)
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
   at android.os.Handler.dispatchMessage(Handler.java:102)
   at android.os.Looper.loop(Looper.java:148)
   at android.app.ActivityThread.main(ActivityThread.java:5417)
   at java.lang.reflect.Method.invoke(Native Method)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
   Caused by: android.view.InflateException: Binary XML file line #29: Binary XML file line #1: Error inflating class fragment
   at android.view.LayoutInflater.inflate(LayoutInflater.java:539)
   at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
   at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
   at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:393)
   at android.app.Activity.setContentView(Activity.java:2166)
   at com.bignerdranch.android.criminalintent.CrimeActivity.onCreate(CrimeActivity.java:11)
   at android.app.Activity.performCreate(Activity.java:6237)
   at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
   at android.app.ActivityThread.-wrap11(ActivityThread.java) 
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
   at android.os.Handler.dispatchMessage(Handler.java:102) 
   at android.os.Looper.loop(Looper.java:148) 
   at android.app.ActivityThread.main(ActivityThread.java:5417) 
   at java.lang.reflect.Method.invoke(Native Method) 
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
   Caused by: android.view.InflateException: Binary XML file line #1: Error inflating class fragment
   at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:782)
   at android.view.LayoutInflater.parseInclude(LayoutInflater.java:941)
   at android.view.LayoutInflater.rInflate(LayoutInflater.java:831)
   at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
   at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
   at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
   at android.view.LayoutInflater.inflate(LayoutInflater.java:374) 
   at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:393) 
   at android.app.Activity.setContentView(Activity.java:2166) 
   at com.bignerdranch.android.criminalintent.CrimeActivity.onCreate(CrimeActivity.java:11) 
   at android.app.Activity.performCreate(Activity.java:6237) 
   at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) 
   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) 
   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
   at android.app.ActivityThread.-wrap11(ActivityThread.java) 
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
   at android.os.Handler.dispatchMessage(Handler.java:102) 
   at android.os.Looper.loop(Looper.java:148) 
   at android.app.ActivityThread.main(ActivityThread.java:5417) 
   at java.lang.reflect.Method.invoke(Native Method) 
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
   Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.util.Date.toString()' on a null object reference
   at com.bignerdranch.android.criminalintent.CrimeFragment.onCreateView(CrimeFragment.java:57)
   at android.support.v4.app.Fragment.performCreateView(Fragment.java:1962)
   at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1036)
   at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1226)
   at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1328)
   at android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2284)
   at android.support.v4.app.FragmentController.onCreateView(FragmentController.java:111)
   at android.support.v4.app.FragmentActivity.dispatchFragmentsOnCreateView(FragmentActivity.java:314)
   at android.support.v4.app.BaseFragmentActivityHoneycomb.onCreateView(BaseFragmentActivityHoneycomb.java:31)
   at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:79)
   at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:754)
   at android.view.LayoutInflater.parseInclude(LayoutInflater.java:941) 
   at android.view.LayoutInflater.rInflate(LayoutInflater.java:831) 
   at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 
   at android.view.LayoutInflater.inflate(LayoutInflater.java:515) 
   at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:374) 
   at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:393) 
   at android.app.Activity.setContentView(Activity.java:2166) 
   at com.bignerdranch.android.criminalintent.CrimeActivity.onCreate(CrimeActivity.java:11) 
   at android.app.Activity.performCreate(Activity.java:6237) 
   at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) 
   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) 
   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
   at android.app.ActivityThread.-wrap11(ActivityThread.java) 
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
   at android.os.Handler.dispatchMessage(Handler.java:102) 
   at android.os.Looper.loop(Looper.java:148) 
   at android.app.ActivityThread.main(ActivityThread.java:5417) 
   at java.lang.reflect.Method.invoke(Native Method) 
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
    02-15 15:48:02.267 2132-2139/com.bignerdranch.android.criminalintent W/art: Suspending all threads took: 13.298ms
    02-15 15:48:08.351 2132-2132/? I/Process: Sending signal. PID: 2132 SIG: 9

感谢任何帮助。

0 个答案:

没有答案