android - 从一个 Activity 更改为另一个 Activity 会导致 App 崩溃

标签 android eclipse

我知道关于这个问题有很多问题,但我已经搜索了关于这个问题的每一篇关于 stackoverflow 和谷歌的文章,但仍然无法解决我的问题。

基本上,我正在尝试创建一个应用程序,在我出国留学期间将 NFC 技术用于单个项目。我现在的首要任务是简单地读取和写入 NFC 标签。出国留学之所以有意义,是因为语言障碍使得在这里获得亲自帮助变得更加困难。

我尝试链接到的第一个 Activity 是 TagsActivity。那没有用,所以我想我会创建另一个简单的 Activity 来尝试链接到,这就是 ToTag。都没有用。两者都已经在 Manifest 文件中,这似乎是对我的许多类似问题的修复。

几天来我一直被同一个问题困扰,今天我花了一个多小时才最终解决了 R.java 问题,但在解决之后这个问题仍然存在。

我只是要发布几乎所有相关代码,因为我真的很困惑为什么它不起作用。

主要 Activity

package com.example.myapp;


import java.util.ArrayList;
import java.util.List;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.content.IntentFilter;
import android.nfc.NdefMessage;
import android.nfc.NdefRecord;
import android.nfc.NfcAdapter;
import android.nfc.Tag;
import android.os.Build;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.Toast;

public class TagsActivity extends Activity {

private Button mEnableWriteButton;
private EditText mTextField;
private NfcAdapter mNfcAdapter;
private ProgressBar mProgressBar;
private boolean isWriteReady = false;

private static final String MIME_TYPE = "application/com.myapp.nfc.tag";

public void processWriteIntent(Intent intent){
    if(isWriteReady &&          NfcAdapter.ACTION_TAG_DISCOVERED.equals(getIntent().getAction())){

        Tag detectedTag = getIntent().getParcelableExtra(NfcAdapter.EXTRA_TAG);

        String tagWriteMessage = mTextField.getText().toString();
        byte[] payload = new String(tagWriteMessage).getBytes();

        if(detectedTag != null && NfcUtils.writeTag(
                NfcUtils.createMessage(MIME_TYPE, payload), detectedTag)) {

            Toast.makeText(this, "Wrote '" + tagWriteMessage + "' to a tag!",
                    Toast.LENGTH_LONG).show();
            setTagWriteReady(false);
        }
        else{
            Toast.makeText(this, "Write failed. Please try again.", Toast.LENGTH_LONG).show();
        }
    }
}

public void processReadIntent(Intent intent){
    List<NdefMessage> intentMessages = NfcUtils.getMessagesFromIntent(intent);
    List<String> payloadStrings = new ArrayList<String>(intentMessages.size());

    for(NdefMessage message : intentMessages){
        for(NdefRecord record : message.getRecords()){
            byte[] payload = record.getPayload();
            String payloadString = new String(payload);

            if(!TextUtils.isEmpty(payloadString)){
                payloadStrings.add(payloadString);
            }
        }
    }

    if(!payloadStrings.isEmpty()){
        Toast.makeText(TagsActivity.this, "Read from tag: " + 
                TextUtils.join(",", payloadStrings), Toast.LENGTH_LONG);
    }
}


/**
 * This method enables this activity to write a tag
 * 
 * @param isWriteReady
 * 
 */
public void setTagWriteReady(boolean isWriteReady){
    this.isWriteReady = isWriteReady;
    if(isWriteReady){
        IntentFilter[] writeTagFilters = new IntentFilter[] {
                new IntentFilter(NfcAdapter.ACTION_TAG_DISCOVERED) };
        mNfcAdapter.enableForegroundDispatch(TagsActivity.this, NfcUtils.getPendingIntent(TagsActivity.this),
                writeTagFilters, null);
    }
    else {
        //Disable dispatch if not writing tags
        mNfcAdapter.disableForegroundDispatch(TagsActivity.this);
    }


}



@Override
public void onNewIntent(Intent intent){
    //onResume gets called after this to handle the intent
    setIntent(intent);
}

@Override 
public void onResume(){
    super.onResume();
    if(isWriteReady && NfcAdapter.ACTION_TAG_DISCOVERED.equals(getIntent().getAction())){
        processWriteIntent(getIntent());
    }
    else if(!isWriteReady &&
            (NfcAdapter.ACTION_TAG_DISCOVERED.equals(
                    getIntent().getAction())
                    || NfcAdapter.ACTION_NDEF_DISCOVERED.equals(
                            getIntent().getAction() ))) {
        processReadIntent(getIntent());
    }

}


@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_tags);

    /*Intent intent = getIntent();
    String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);

    // Create the text view
    TextView textView = new TextView(this);
    textView.setTextSize(40);
    textView.setText(message);

    // Set the text view as the activity layout
    setContentView(textView); */

    //Make sure we're running on Honeycomb or higher to use ActionBar
    if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB){
        //Show the Up button in the action bar
        getActionBar().setDisplayHomeAsUpEnabled(true);
    }

    mTextField = (EditText) findViewById(R.id.progress_bar);

    mProgressBar = (ProgressBar) findViewById(R.id.edit_message);
    mProgressBar.setVisibility(View.GONE);

    mEnableWriteButton = (Button) findViewById(R.id.enable_write_button);
    mEnableWriteButton.setOnClickListener(new OnClickListener(){

        @Override 
        public void onClick(View v) {

            setTagWriteReady(!isWriteReady);
            mProgressBar.setVisibility(isWriteReady ? View.VISIBLE : View.GONE);

        }


    });

    mNfcAdapter = NfcAdapter.getDefaultAdapter(this);
    if(mNfcAdapter == null){
        Toast.makeText(this, "Sorry, NFC not available on this device", Toast.LENGTH_SHORT).show();
    }

}





@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.tags, menu);
    return true;
}

}

标签 Activity

package com.example.myapp;


import java.util.ArrayList;
import java.util.List;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.content.IntentFilter;
import android.nfc.NdefMessage;
import android.nfc.NdefRecord;
import android.nfc.NfcAdapter;
import android.nfc.Tag;
import android.os.Build;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.Toast;

public class TagsActivity extends Activity {

private Button mEnableWriteButton;
private EditText mTextField;
private NfcAdapter mNfcAdapter;
private ProgressBar mProgressBar;
private boolean isWriteReady = false;

private static final String MIME_TYPE = "application/com.myapp.nfc.tag";

public void processWriteIntent(Intent intent){
    if(isWriteReady && NfcAdapter.ACTION_TAG_DISCOVERED.equals(getIntent().getAction())){

        Tag detectedTag = getIntent().getParcelableExtra(NfcAdapter.EXTRA_TAG);

        String tagWriteMessage = mTextField.getText().toString();
        byte[] payload = new String(tagWriteMessage).getBytes();

        if(detectedTag != null && NfcUtils.writeTag(
                NfcUtils.createMessage(MIME_TYPE, payload), detectedTag)) {

            Toast.makeText(this, "Wrote '" + tagWriteMessage + "' to a tag!",
                    Toast.LENGTH_LONG).show();
            setTagWriteReady(false);
        }
        else{
            Toast.makeText(this, "Write failed. Please try again.", Toast.LENGTH_LONG).show();
        }
    }
}

public void processReadIntent(Intent intent){
    List<NdefMessage> intentMessages = NfcUtils.getMessagesFromIntent(intent);
    List<String> payloadStrings = new ArrayList<String>(intentMessages.size());

    for(NdefMessage message : intentMessages){
        for(NdefRecord record : message.getRecords()){
            byte[] payload = record.getPayload();
            String payloadString = new String(payload);

            if(!TextUtils.isEmpty(payloadString)){
                payloadStrings.add(payloadString);
            }
        }
    }

    if(!payloadStrings.isEmpty()){
        Toast.makeText(TagsActivity.this, "Read from tag: " + 
                TextUtils.join(",", payloadStrings), Toast.LENGTH_LONG);
    }
}


/**
 * This method enables this activity to write a tag
 * 
 * @param isWriteReady
 * 
 */
public void setTagWriteReady(boolean isWriteReady){
    this.isWriteReady = isWriteReady;
    if(isWriteReady){
        IntentFilter[] writeTagFilters = new IntentFilter[] {
                new IntentFilter(NfcAdapter.ACTION_TAG_DISCOVERED) };
        mNfcAdapter.enableForegroundDispatch(TagsActivity.this, NfcUtils.getPendingIntent(TagsActivity.this),
                writeTagFilters, null);
    }
    else {
        //Disable dispatch if not writing tags
        mNfcAdapter.disableForegroundDispatch(TagsActivity.this);
    }


}



@Override
public void onNewIntent(Intent intent){
    //onResume gets called after this to handle the intent
    setIntent(intent);
}

@Override 
public void onResume(){
    super.onResume();
    if(isWriteReady && NfcAdapter.ACTION_TAG_DISCOVERED.equals(getIntent().getAction())){
        processWriteIntent(getIntent());
    }
    else if(!isWriteReady &&
            (NfcAdapter.ACTION_TAG_DISCOVERED.equals(
                    getIntent().getAction())
                    || NfcAdapter.ACTION_NDEF_DISCOVERED.equals(
                            getIntent().getAction() ))) {
        processReadIntent(getIntent());
    }

}


@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_tags);

    /*Intent intent = getIntent();
    String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);

    // Create the text view
    TextView textView = new TextView(this);
    textView.setTextSize(40);
    textView.setText(message);

    // Set the text view as the activity layout
    setContentView(textView); */

    //Make sure we're running on Honeycomb or higher to use ActionBar
    if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB){
        //Show the Up button in the action bar
        getActionBar().setDisplayHomeAsUpEnabled(true);
    }

    mTextField = (EditText) findViewById(R.id.progress_bar);

    mProgressBar = (ProgressBar) findViewById(R.id.progress_bar);
    mProgressBar.setVisibility(View.GONE);

    mEnableWriteButton = (Button) findViewById(R.id.enable_write_button);
    mEnableWriteButton.setOnClickListener(new OnClickListener(){

        @Override 
        public void onClick(View v) {

            setTagWriteReady(!isWriteReady);
            mProgressBar.setVisibility(isWriteReady ? View.VISIBLE : View.GONE);

        }


    });

    mNfcAdapter = NfcAdapter.getDefaultAdapter(this);
    if(mNfcAdapter == null){
        Toast.makeText(this, "Sorry, NFC not available on this device", Toast.LENGTH_SHORT).show();
    }

}





@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.tags, menu);
    return true;
}




}

到标签

package com.example.myapp;

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


public class ToTag extends Activity {

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

    // TODO Auto-generated method stub
}

}

我的应用 list

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

<uses-sdk
    android:minSdkVersion="10"
    android:targetSdkVersion="17" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.example.myapp.MainActivity"
        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:name="com.example.myapp.TagsActivity"
        android:label="@string/title_activity_tags"
        android:launchMode="singleTop"
        android:parentActivityName="com.example.myapp.MainActivity" >
        <intent-filter>
            <action android:name="android.nfc.action.NDEF_DISCOVERED" />

            <category android:name="android.intent.category.DEFAULT" />

            <data android:mimeType="application/com.example.myapp" />

            <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value="com.example.myapp.MainActivity" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.nfc.action.TAG_DISCOVERED" />

            <category android:name="android.intent.category.DEFAULT" />

            <data android:mimeType="application/com.example.myapp" />
        </intent-filter>


    </activity>
    <activity
        android:name="com.example.myapp.ToTagActivity"
        android:label="@string/title_activity_to_tag"
        android:parentActivityName="com.example.myapp.MainActivity" >
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.example.myapp.MainActivity" />
    </activity>
</application>

</manifest>

activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="top"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<Button
    android:id="@+id/enable_write_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/edit_message"
    android:layout_centerHorizontal="true"
    android:text="@string/Write" 
    android:onClick="writeToTag"/>

<EditText
    android:id="@+id/edit_message"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="19dp"
    android:ems="10"
    android:hint="" >

    <requestFocus />
</EditText>

<Button
    android:id="@+id/to_tags"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/enable_write_button"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="21dp"
    android:text="@string/to_tag" 
    android:onClick="toTag"/>

</RelativeLayout>

activity_tags.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".TagsActivity" >

<Button
    android:id="@+id/enable_write_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="81dp"
    android:text="@string/TagWriting" />

<ProgressBar
    android:id="@+id/progress_bar"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/enable_write_button"
    android:layout_centerHorizontal="true" />

<EditText
    android:id="@+id/edit_message"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/enable_write_button"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="49dp"
    android:ems="10"
    android:hint="@string/edit_message" >

    <requestFocus />
</EditText>

</RelativeLayout>

activity_to_tag.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".ToTagActivity" >

<TextView
    android:id="@+id/here"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginLeft="80dp"
    android:layout_marginTop="51dp"
    android:text="@string/Got_Here"
    android:textAppearance="?android:attr/textAppearanceLarge" />

</RelativeLayout>

最后是 logcat 错误

04-28 21:32:28.240: D/memalloc(20292): /dev/pmem: Mapped buffer base:0x5178b000                         size:2641920 offset:2027520 fd:50
04-28 21:32:28.320: D/memalloc(20292): /dev/pmem: Mapped buffer base:0x51dce000 size:3256320 offset:2641920 fd:53
04-28 21:32:28.770: D/memalloc(20292): /dev/pmem: Mapped buffer base:0x522a8000 size:614400 offset:0 fd:56
04-28 21:32:30.760: W/dalvikvm(20292): threadid=1: thread exiting with uncaught exception (group=0x40db71f8)
04-28 21:32:30.780: E/AndroidRuntime(20292): FATAL EXCEPTION: main
04-28 21:32:30.780: E/AndroidRuntime(20292): java.lang.IllegalStateException: Could not execute method of the activity
04-28 21:32:30.780: E/AndroidRuntime(20292):    at android.view.View$1.onClick(View.java:3057)
04-28 21:32:30.780: E/AndroidRuntime(20292):    at android.view.View.performClick(View.java:3524)
04-28 21:32:30.780: E/AndroidRuntime(20292):    at android.view.View$PerformClick.run(View.java:14194)
04-28 21:32:30.780: E/AndroidRuntime(20292):    at android.os.Handler.handleCallback(Handler.java:605)
04-28 21:32:30.780: E/AndroidRuntime(20292):    at android.os.Handler.dispatchMessage(Handler.java:92)
04-28 21:32:30.780: E/AndroidRuntime(20292):    at android.os.Looper.loop(Looper.java:137)
04-28 21:32:30.780: E/AndroidRuntime(20292):    at android.app.ActivityThread.main(ActivityThread.java:4476)
04-28 21:32:30.780: E/AndroidRuntime(20292):    at java.lang.reflect.Method.invokeNative(Native Method)
04-28 21:32:30.780: E/AndroidRuntime(20292):    at java.lang.reflect.Method.invoke(Method.java:511)
04-28 21:32:30.780: E/AndroidRuntime(20292):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:816)
04-28 21:32:30.780: E/AndroidRuntime(20292):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:583)
04-28 21:32:30.780: E/AndroidRuntime(20292):    at dalvik.system.NativeStart.main(Native Method)
04-28 21:32:30.780: E/AndroidRuntime(20292): Caused by: java.lang.reflect.InvocationTargetException
04-28 21:32:30.780: E/AndroidRuntime(20292):    at java.lang.reflect.Method.invokeNative(Native Method)
04-28 21:32:30.780: E/AndroidRuntime(20292):    at java.lang.reflect.Method.invoke(Method.java:511)
04-28 21:32:30.780: E/AndroidRuntime(20292):    at android.view.View$1.onClick(View.java:3052)
04-28 21:32:30.780: E/AndroidRuntime(20292):    ... 11 more
04-28 21:32:30.780: E/AndroidRuntime(20292): Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class     {com.example.myapp/com.example.myapp.ToTag}; have you declared this activity in your AndroidManifest.xml?
04-28 21:32:30.780: E/AndroidRuntime(20292):    at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1536)
04-28 21:32:30.780: E/AndroidRuntime(20292):    at android.app.Instrumentation.execStartActivity(Instrumentation.java:1390)
04-28 21:32:30.780: E/AndroidRuntime(20292):    at android.app.Activity.startActivityForResult(Activity.java:3361)
04-28 21:32:30.780: E/AndroidRuntime(20292):    at android.app.Activity.startActivity(Activity.java:3468)
04-28 21:32:30.780: E/AndroidRuntime(20292):    at com.example.myapp.MainActivity.toTag(MainActivity.java:33)
04-28 21:32:30.780: E/AndroidRuntime(20292):    ... 14 more
04-28 21:39:53.060: D/memalloc(20645): /dev/pmem: Mapped buffer base:0x5178b000 size:2641920 offset:2027520 fd:50
04-28 21:39:53.150: D/memalloc(20645): /dev/pmem: Mapped buffer base:0x51b30000 size:3256320 offset:2641920 fd:53
04-28 21:39:53.610: D/memalloc(20645): /dev/pmem: Mapped buffer base:0x5205c000 size:614400 offset:0 fd:56
04-28 21:39:54.170: W/dalvikvm(20645): threadid=1: thread exiting with uncaught exception (group=0x40db71f8)
04-28 21:39:54.180: E/AndroidRuntime(20645): FATAL EXCEPTION: main
04-28 21:39:54.180: E/AndroidRuntime(20645): java.lang.IllegalStateException: Could not execute method of the activity
04-28 21:39:54.180: E/AndroidRuntime(20645):    at android.view.View$1.onClick(View.java:3057)
04-28 21:39:54.180: E/AndroidRuntime(20645):    at android.view.View.performClick(View.java:3524)
04-28 21:39:54.180: E/AndroidRuntime(20645):    at android.view.View$PerformClick.run(View.java:14194)
04-28 21:39:54.180: E/AndroidRuntime(20645):    at android.os.Handler.handleCallback(Handler.java:605)
04-28 21:39:54.180: E/AndroidRuntime(20645):    at android.os.Handler.dispatchMessage(Handler.java:92)
04-28 21:39:54.180: E/AndroidRuntime(20645):    at android.os.Looper.loop(Looper.java:137)
04-28 21:39:54.180: E/AndroidRuntime(20645):    at android.app.ActivityThread.main(ActivityThread.java:4476)
04-28 21:39:54.180: E/AndroidRuntime(20645):    at java.lang.reflect.Method.invokeNative(Native Method)
04-28 21:39:54.180: E/AndroidRuntime(20645):    at java.lang.reflect.Method.invoke(Method.java:511)
04-28 21:39:54.180: E/AndroidRuntime(20645):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:816)
04-28 21:39:54.180: E/AndroidRuntime(20645):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:583)
04-28 21:39:54.180: E/AndroidRuntime(20645):    at dalvik.system.NativeStart.main(Native Method)
04-28 21:39:54.180: E/AndroidRuntime(20645): Caused by: java.lang.reflect.InvocationTargetException
04-28 21:39:54.180: E/AndroidRuntime(20645):    at java.lang.reflect.Method.invokeNative(Native Method)
04-28 21:39:54.180: E/AndroidRuntime(20645):    at java.lang.reflect.Method.invoke(Method.java:511)
04-28 21:39:54.180: E/AndroidRuntime(20645):    at android.view.View$1.onClick(View.java:3052)
04-28 21:39:54.180: E/AndroidRuntime(20645):    ... 11 more
04-28 21:39:54.180: E/AndroidRuntime(20645): Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class     {com.example.myapp/com.example.myapp.ToTag}; have you declared this activity in your AndroidManifest.xml?
04-28 21:39:54.180: E/AndroidRuntime(20645):    at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1536)
04-28 21:39:54.180: E/AndroidRuntime(20645):    at android.app.Instrumentation.execStartActivity(Instrumentation.java:1390)
04-28 21:39:54.180: E/AndroidRuntime(20645):    at android.app.Activity.startActivityForResult(Activity.java:3361)
04-28 21:39:54.180: E/AndroidRuntime(20645):    at android.app.Activity.startActivity(Activity.java:3468)
04-28 21:39:54.180: E/AndroidRuntime(20645):    at com.example.myapp.MainActivity.toTag(MainActivity.java:33)
04-28 21:39:54.180: E/AndroidRuntime(20645):    ... 14 more

抱歉,代码太长了,但是如果我忘记了任何东西,直到早上我才能更新,所以我想包括所有相关的东西。显然,这是我在这里发表的第一篇文章,我试图对格式进行研究,但我确定我搞砸了,所以我提前道歉。

EDIT1:修复了 list 中有“ToTagActivity”而不是“ToTag”的地方。现在我需要找出一些可能与 TagsActivity 转换类似的错误。

EDIT2:修复了我不小心将进度条转换为 EditText 的错误。

EDIT3:知道了!在对错误进行更多筛选并在网站上搜索之后,发现我忘记了 list 中的 NFC 许可!

最佳答案

错误信息

04-28 21:39:54.180: E/AndroidRuntime(20645): Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class     {com.example.myapp/com.example.myapp.ToTag}; have you declared this activity in your AndroidManifest.xml?

所以我们检查你的 list ,看起来不错

<activity
    android:name="com.example.myapp.ToTagActivity"

但是

public class ToTag extends Activity

关于android - 从一个 Activity 更改为另一个 Activity 会导致 App 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16268523/

相关文章:

Android 在使用 fragment 时剪切我的文本

android - 我需要将 AIDL 文件放在哪里?

Android 闪光灯相机在拍照前关闭

java - 使用 eclipse IDE 的 selenium webdriver 中的 "Debug from step"、 "step over"、 "step into"

Android eclipse 将按下状态添加到 ImageView

android - 如何从 Sqlite 获取最后一条记录?

android - 地理围栏在 Android 中完全无法使用吗?

java - 我的 eclipse luna 无法启动

java - Eclipse 条件断点,在任何字符串等于

java - 如何更改 Eclipse 中的代码约定