Android NFC抛出异常

Android NFC抛出异常,android,nfc,Android,Nfc,我有一个使用P2P NFC的android应用程序。NFC可以工作,但我必须点击两次设备才能启动它。当我调试我的应用程序并点击设备时,它调用createNdefMessage函数,但在JavaBinder中抛出异常。 在运行模式下不会崩溃,但我必须点击设备两次才能启动NFC 在NFC之前,我调用文件选择器来选择要传输的文件。 这是我的代码OnCreate public void onCreate(Bundle savedInstanceState) { super.onCreate(sa

我有一个使用P2P NFC的android应用程序。NFC可以工作,但我必须点击两次设备才能启动它。当我调试我的应用程序并点击设备时,它调用createNdefMessage函数,但在JavaBinder中抛出异常。 在运行模式下不会崩溃,但我必须点击设备两次才能启动NFC

在NFC之前,我调用文件选择器来选择要传输的文件。 这是我的代码OnCreate

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    //  INFO TEXTVIEW
    mInfoText = (TextView) findViewById(R.id.info_text_view);

    //  FILE SELECTOR BUTTON
    mStartActivityButton = (Button)findViewById(R.id.start_file_picker_button);
    mStartActivityButton.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            switch(v.getId()) {
            case R.id.start_file_picker_button:

                // Create a new Intent for the file picker activity
                Intent intent = new Intent(getApplicationContext(), FilePickerActivity.class);

                // Start the activity
                startActivityForResult(intent, REQUEST_PICK_FILE);

                break;
            }
        }

    });

    //  CHECK FOR AVAILABLE NFC ADAPTOR
    mNfcAdapter = NfcAdapter.getDefaultAdapter(this);
    if (mNfcAdapter == null) {

        mInfoText.setText("NFC is not available on this device.");
    } else {
        // Register callback to set NDEF message
        mNfcAdapter.setNdefPushMessageCallback(this, this);
        // Register callback to listen for message-sent success
        mNfcAdapter.setOnNdefPushCompleteCallback(this, this);
    }

}
createNdefMessage

public NdefMessage createNdefMessage(NfcEvent event) {
    Time time = new Time();
    time.setToNow();
    mInfoText.setTextColor(Color.WHITE);
    mInfoText.setText("File Transfer In Progress ...");

     NdefMessage msg = new NdefMessage(NdefRecord.createMime(
    "application/com.example.android.beam", text.getBytes()));

     return msg;
}
我的应用程序在

mInfoText.setTextColor(Color.WHITE);

是因为我有两个意图吗?

我想当你调用
mInfoText时,setTextColor(Color.WHITE)
mInfoText
是空的。在调用
setTextColor

之前,请尝试使用
findViewById()初始化。如果您在onCreate中看到代码,我将其初始化。@mobiletest-您可能已经看到了-您在If语句中启动了textview,因此ifmNfcAdapter!=null,则您的textview将保持为null。尝试将初始化移动到if station外部,即使我将其从那里移除,并将其放在OnCreate的顶部,我得到了运行时异常。我在这里看到的不是因为这个文本字段。即使我删除了该文本字段,我也会在createNdefMessage函数的另一行中得到该类型的异常。我想这是因为我对按钮点击的意图。所以在我的代码中,我有两个意图,一个是点击按钮,另一个是NFC。我点击按钮,然后点击设备进行NFC。我认为这是有冲突的地方。有没有一种方法可以阻止一种意图???@mobiletest-这很有趣。。。。发布日志,我再看一眼06-04 11:17:00.378:W/ActivityThread(5861):Application com.example.android.beam正在端口8100上等待调试器。。。06-04 11:18:09.932:E/JavaBinder(5861):在com.example.android.beam.beam.createNdefMessage(beam.java:224)中,它显示了Parcel.class中的异常