[RESOLVIDO]Erro ao chamar uma activity NULLPOINTEXCEPTION [Android]

2 respostas
R

Bom dia, Pessoal

Estou tendo o problema de chamar uma activity q já estava funcionando....

Estou tentando chamar essa Activity e estou recebendo um NULLPOINTEREXCEPTION. dizendo q não é possivel Inicializar a Activity

LogCat

06-18 13:27:31.204: E/AndroidRuntime(332): FATAL EXCEPTION: main
06-18 13:27:31.204: E/AndroidRuntime(332): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{br.com.sky/br.com.sky.view.ListarCanais}: java.lang.NullPointerException
06-18 13:27:31.204: E/AndroidRuntime(332): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585)
06-18 13:27:31.204: E/AndroidRuntime(332): 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
06-18 13:27:31.204: E/AndroidRuntime(332): 	at android.app.ActivityThread.access$2300(ActivityThread.java:125)
06-18 13:27:31.204: E/AndroidRuntime(332): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
06-18 13:27:31.204: E/AndroidRuntime(332): 	at android.os.Handler.dispatchMessage(Handler.java:99)
06-18 13:27:31.204: E/AndroidRuntime(332): 	at android.os.Looper.loop(Looper.java:123)
06-18 13:27:31.204: E/AndroidRuntime(332): 	at android.app.ActivityThread.main(ActivityThread.java:4627)
06-18 13:27:31.204: E/AndroidRuntime(332): 	at java.lang.reflect.Method.invokeNative(Native Method)
06-18 13:27:31.204: E/AndroidRuntime(332): 	at java.lang.reflect.Method.invoke(Method.java:521)
06-18 13:27:31.204: E/AndroidRuntime(332): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
06-18 13:27:31.204: E/AndroidRuntime(332): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
06-18 13:27:31.204: E/AndroidRuntime(332): 	at dalvik.system.NativeStart.main(Native Method)
06-18 13:27:31.204: E/AndroidRuntime(332): Caused by: java.lang.NullPointerException
06-18 13:27:31.204: E/AndroidRuntime(332): 	at br.com.sky.view.ListarCanais.<init>(ListarCanais.java:92)
06-18 13:27:31.204: E/AndroidRuntime(332): 	at java.lang.Class.newInstanceImpl(Native Method)
06-18 13:27:31.204: E/AndroidRuntime(332): 	at java.lang.Class.newInstance(Class.java:1429)
06-18 13:27:31.204: E/AndroidRuntime(332): 	at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
06-18 13:27:31.204: E/AndroidRuntime(332): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577)
06-18 13:27:31.204: E/AndroidRuntime(332): 	... 11 more

Activity

package br.com.sky.view;


import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.ksoap2.SoapFault;

import br.com.sky.R;
import br.com.sky.modelo.Canais;
import br.com.sky.modelo.CanalAdapter;
import br.com.sky.persistencia.ListarCanaisWS;
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

public class ListarCanais extends ListActivity {
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
		getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,
				R.layout.cabecalho);

		setContentView(R.layout.listarcanais);
		
		Integer codCliente = null;
				
		Intent it = getIntent();
		
		if(it!=null){
			Bundle params = it.getExtras();
			if(params !=null){
				codCliente = params.getInt("codCliente");				
			}
		}

		ListarCanaisWS ws = new ListarCanaisWS();

		List<Canais> listaDeCanais = new ArrayList<Canais>();

		
		List<Canais> listaWs = null;
		try {
			listaWs = ws.listarCanais(codCliente);
		} catch (SoapFault e) {
			// TODO Auto-generated catch block
			e.getMessage();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.getMessage();
		}
		
		for (int i = 0; i < listaWs.size(); i++) {
			Canais c = new Canais();
			c.setCodCanal(listaWs.get(i).getCodCanal());
			c.setTitCanal(listaWs.get(i).getTitCanal());
			c.setQtdMaterias(listaWs.get(i).getQtdMaterias());
			

			listaDeCanais.add(c);
		}			
		setListAdapter(new CanalAdapter(this, listaDeCanais));   

		TextView text = (TextView) findViewById(R.id.txtCanalTit);
		text.setText("   Canais");

	}
	Object o;
	@Override
	protected void onListItemClick(ListView l, View v, int position, long id) {
		// TODO Auto-generated method stub
		super.onListItemClick(l, v, position, id);
		// pega o item naquela posição
		o = this.getListAdapter().getItem(position);
		String item = o.toString();
		// Exibe uma Alerta
		Toast.makeText(ListarCanais.this, "Você selecionou: " + item,
				Toast.LENGTH_SHORT).show();
		Intent it = new Intent(ListarCanais.this, Tabs.class);
		startActivity(it);

	}
	Canais linhaSelecionada = (Canais) o; 
	String c = linhaSelecionada.getCodCanal();	
	
}

Manifest

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="br.com.sky"
    android:versionCode="1"
    android:versionName="1.0" >
    
    <uses-sdk android:minSdkVersion="8" />
	<uses-permission android:name="android.permission.INTERNET"/>
    <application           
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        >
        <activity android:theme="@style/NomeTema" android:name=".view.Login">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
        <activity android:name=".view.GaleriaMateria">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
        <activity android:name=".view.ListarCanais">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
        <activity android:name=".view.ListarMaterias">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
        <activity android:theme="@android:style/Theme.Light" android:name=".view.MeteriaSwitcher">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
        <activity android:theme="@android:style/Theme.NoTitleBar" android:name=".view.Tabs">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
        <activity android:name=".view.Tab2">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
    </application>

</manifest>

Obs. O fato de todas as activity estarem com Action Main e category Launcher é q eu estava testando uma a uma.

Obrigado

2 Respostas

Marky.Vasconcelos
Object o;  
    @Override  
    protected void onListItemClick(ListView l, View v, int position, long id) {  
        // TODO Auto-generated method stub  
        super.onListItemClick(l, v, position, id);  
        // pega o item naquela posição  
        o = this.getListAdapter().getItem(position);  
        String item = o.toString();  
        // Exibe uma Alerta  
        Toast.makeText(ListarCanais.this, "Você selecionou: " + item,  
                Toast.LENGTH_SHORT).show();  
        Intent it = new Intent(ListarCanais.this, Tabs.class);  
        startActivity(it);  
  
    }  
    Canais linhaSelecionada = (Canais) o;   
    String c = linhaSelecionada.getCodCanal();

Por que essas linhas estão fora do método?

Repare que é o linhaSelecionada que é null.

R

Bom dia, Marky.Vasconcelos

Perfeito velho exatamente isso…

Estava fazendo alguns teste e acabei deixando fora do metodo…eu não estava conseguindo chegar com o debug até ae, por isso não percebi…

Mto Obrigado

Criado 18 de junho de 2012
Ultima resposta 18 de jun. de 2012
Respostas 2
Participantes 2