ActivityNotFoundException:无法找到显式活动类{co.edu.unimagdalena.projecto / co.edu.unimagdalena.projecto.informacion2}

时间:2015-11-01 02:51:07

标签: java android android-activity

我有一个包含两个类的包 MainActivity:

  package co.edu.unimagdalena.projecto;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;


public class MainActivity extends Activity implements OnClickListener {


    String[] info;
    private EditText nombre;
    private EditText apellido;
    private EditText email;
    private EditText telefono;
    private Button enviar;
    final static String INFO = "co.edu.unimagdalena.projecto.informacion2";

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

        nombre=(EditText)findViewById(R.id.EditTextNombre);

        apellido=(EditText)findViewById(R.id.EditTextApellidos);

        email=(EditText)findViewById(R.id.EditTextCorreo);

        telefono=(EditText)findViewById(R.id.EditTextTelefono);

        enviar = (Button)findViewById(R.id.BtnEnviar);

        enviar.setOnClickListener(this);

        info=new String[4];
    }

    public void onClick (View v){

        Intent intent = new Intent (this, informacion2.class);
        intent.setClassName("co.edu.unimagdalena.projecto","co.edu.unimagdalena.projecto.informacion2");

        startActivity(intent);


    }


    public void pasarActidadInfo (View v){

        info [0] = nombre.getText().toString();
        info [1] = apellido.getText().toString();
        info [2] = email.getText().toString();
        info [3] = telefono.getText().toString();

        Intent act = new Intent (this, informacion2.class);
        act.putExtra(INFO, info);
        startActivity(act);

    }

和其他类称之为informacion2:

package co.edu.unimagdalena.projecto;


import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Parcel;
import android.os.Parcelable;
import android.widget.TextView;

import co.edu.unimagdalena.projecto.MainActivity;

public class informacion2 extends Activity  {

    String [] info;
    TextView nombre,apellido,email,telefono;

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

        nombre = (TextView) findViewById(R.id.mostrarNombre);
        apellido= (TextView) findViewById(R.id.mostrarApellido);
        email = (TextView) findViewById(R.id.mostrarEmail);
        telefono = (TextView) findViewById(R.id.mostrarTelefono);

        Intent men = getIntent();
        info = men.getStringArrayExtra(MainActivity.INFO);

        nombre.setText(info[0]);
        apellido.setText(info[1]);
        email.setText(info[2]);
        telefono.setText(info[3]);



    }
}

,这是AndroidManifest.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="co.edu.unimagdalena.projecto">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".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>
    </application>
    <activity
        android:name=".informacion2"
        android:label="@string/app_name">
    </activity>

</manifest>

**我已经尝试了所有内容并且错误未得到纠正,我是android studio中的新手

我可以修复错误,但现在android studio给了我这个错误 java.lang.RuntimeException:无法启动活动ComponentInfo {co.edu.unimagdalena.projecto / co.edu.unimagdalena.projecto.informacion2}:java.lang.NullPointerException:尝试从空数组中读取**

4 个答案:

答案 0 :(得分:1)

尝试在清单文件中包含应用程序内的其他活动,如下所示             

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".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=".informacion2"
    android:label="@string/app_name">
</activity>

</application>

答案 1 :(得分:0)

setClassName将Package Context作为第一个param setClassName(Context packageContext,String className):

在Android清单

<activity android:name="co.edu.unimagdalena.projecto.informacion2">

从主要活动开始活动

intent.setClassName("co.edu.unimagdalena.projecto","co.edu.unimagdalena.projecto.informacion2");

答案 2 :(得分:0)

当您尝试获取Array的值时,您将在第二个活动中获得NullPointerException。并且您正在填充第一个活动的pasarActidadInfo方法中的数组。问题是,在第一个活动填充数组后,您没有从任何地方调用pasarActidadInfo。所以,你的数组将为null。

如果要开始新活动,请尝试调用pasarActidadInfo方法。 可能在按钮的onClick

答案 3 :(得分:0)

Always declare all android components (activities, service, receivers) inside the application tag / block and other configurations will be defined outside of application tag/block and inside manifest tag / block in Androidmanifest.xml.

将此代码复制并粘贴到manifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
 package="co.edu.unimagdalena.projecto">

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".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=".informacion2"
    android:label="@string/app_name">
</activity>
</application>


 </manifest>