Autore Topic: Unable to instantiate activity ComponentInfo  (Letto 1460 volte)

Offline cadupper

  • Utente junior
  • **
  • Post: 81
  • Respect: 0
    • cadupper
    • Mostra profilo
  • Dispositivo Android:
    HTC Magic Tim (32A)
  • Play Store ID:
    cadupper
  • Sistema operativo:
    Ubuntu 10.04
Unable to instantiate activity ComponentInfo
« il: 12 Maggio 2011, 22:27:07 CEST »
0
Ho un bottone che quando cliccato mi dovreppe aprire un activity.. purtroppo ho questo errore al momento della pressione..
Codice: [Seleziona]
E/AndroidRuntime(  700): FATAL EXCEPTION: main
E/AndroidRuntime(  700): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{it.unipd.dei.es1011.droidgrill/it.unipd.dei.es1011.droidgrill.AddNewEvent}: java.lang.NullPointerException
E/AndroidRuntime(  700):         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585)
E/AndroidRuntime(  700):         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
E/AndroidRuntime(  700):         at android.app.ActivityThread.access$2300(ActivityThread.java:125)
E/AndroidRuntime(  700):         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
E/AndroidRuntime(  700):         at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(  700):         at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime(  700):         at android.app.ActivityThread.main(ActivityThread.java:4627)
E/AndroidRuntime(  700):         at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(  700):         at java.lang.reflect.Method.invoke(Method.java:521)
E/AndroidRuntime(  700):         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
E/AndroidRuntime(  700):         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
E/AndroidRuntime(  700):         at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime(  700): Caused by: java.lang.NullPointerException
E/AndroidRuntime(  700):         at android.app.Activity.findViewById(Activity.java:1637)
E/AndroidRuntime(  700):         at it.unipd.dei.es1011.droidgrill.AddNewEvent.<init>(AddNewEvent.java:17)
E/AndroidRuntime(  700):         at java.lang.Class.newInstanceImpl(Native Method)
E/AndroidRuntime(  700):         at java.lang.Class.newInstance(Class.java:1429)
E/AndroidRuntime(  700):         at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
E/AndroidRuntime(  700):         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577)
E/AndroidRuntime(  700):         ... 11 more
W/ActivityManager(   59):   Force finishing activity it.unipd.dei.es1011.droidgrill/.AddNewEvent
W/ActivityManager(   59):   Force finishing activity it.unipd.dei.es1011.droidgrill/.Events
W/ActivityManager(   59): Activity pause timeout for HistoryRecord{4504e2d8 it.unipd.dei.es1011.droidgrill/.AddNewEvent}

questo è il metodo che ho usato nella classe principale per far partire la seconda activity
Codice: [Seleziona]
addEventButton = (Button) findViewById(R.id.bu_addEvent);
                addEventButton.setOnClickListener(new View.OnClickListener() {
                        public void onClick(View v) {
                               
                                Intent myIntent = new Intent(v.getContext(), AddNewEvent.class);
                                startActivityForResult(myIntent, 0);
                        }
                });


Avete idea di cosa sia?

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re: Unable to instantiate activity ComponentInfo
« Risposta #1 il: 12 Maggio 2011, 22:39:24 CEST »
0
sono sicuro che l'errore sia qui:
Caused by: java.lang.NullPointerException
at android.app.Activity.findViewById(Activity.java:1637)
at it.unipd.dei.es1011.droidgrill.AddNewEvent.<init>(AddNewEvent.java:17)
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline cadupper

  • Utente junior
  • **
  • Post: 81
  • Respect: 0
    • cadupper
    • Mostra profilo
  • Dispositivo Android:
    HTC Magic Tim (32A)
  • Play Store ID:
    cadupper
  • Sistema operativo:
    Ubuntu 10.04
Re: Unable to instantiate activity ComponentInfo
« Risposta #2 il: 12 Maggio 2011, 22:43:31 CEST »
0
Posto anche il codice della classe della nuova activity intanto
Codice: [Seleziona]
public class AddNewEvent extends Activity {
        private AppDB db;

        // name
        private EditText et_name = (EditText) findViewById(R.id.et_nevent_Name);
        private String name = null;

        // coordinates
        private EditText et_coo = (EditText) findViewById(R.id.tv_nevent_Coo);
        private Button bu_cooByMap = (Button) findViewById(R.id.bu_nevent_CooByMap);
        private Button bu_cooHere = (Button) findViewById(R.id.bu_nevent_CooHere);
        private double lat = 0;
        private double lon = 0;

        // photo
        private ImageButton ib_photo = (ImageButton) findViewById(R.id.ib_nevent_photo);
        private Button bu_takePhoto = (Button) findViewById(R.id.bu_nevent_TakePoto);
        private DatePicker dp_date = (DatePicker) findViewById(R.id.dp_nevent);

        private Button bu_import = (Button) findViewById(R.id.bu_nevent_Import);
        private Button bu_ok = (Button) findViewById(R.id.bu_nevent_ok);

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


        }


L'errore mi viene dato x questa riga
Codice: [Seleziona]
private EditText et_name = (EditText) findViewById(R.id.et_nevent_Name);

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re: Unable to instantiate activity ComponentInfo
« Risposta #3 il: 12 Maggio 2011, 22:45:18 CEST »
+1
il findViewById va fatto DENTRO l'onCreate,non puoi farlo all'iterno dell'app fuori dai metodi!
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline cadupper

  • Utente junior
  • **
  • Post: 81
  • Respect: 0
    • cadupper
    • Mostra profilo
  • Dispositivo Android:
    HTC Magic Tim (32A)
  • Play Store ID:
    cadupper
  • Sistema operativo:
    Ubuntu 10.04
Re: Unable to instantiate activity ComponentInfo
« Risposta #4 il: 12 Maggio 2011, 22:50:28 CEST »
0
il findViewById va fatto DENTRO l'onCreate,non puoi farlo all'iterno dell'app fuori dai metodi!

Grazie 1000, con questo ho risolto! e se voglio usare ad esempio un bottone fuori daal onCreate allora devo richiamarlo con findViewById dentro l'onCreate ma definirlo fuori dalla classe?
ciao e ancora grazie!

Offline cadupper

  • Utente junior
  • **
  • Post: 81
  • Respect: 0
    • cadupper
    • Mostra profilo
  • Dispositivo Android:
    HTC Magic Tim (32A)
  • Play Store ID:
    cadupper
  • Sistema operativo:
    Ubuntu 10.04
Re: Unable to instantiate activity ComponentInfo
« Risposta #5 il: 13 Maggio 2011, 00:17:41 CEST »
0
il findViewById va fatto DENTRO l'onCreate,non puoi farlo all'iterno dell'app fuori dai metodi!

 La mia classe è questa
Codice: [Seleziona]
public class AddNewEvent extends Activity {
        private AppDB db;

        // name
        EditText et_name;

        // coordinates
        EditText et_coo;
        Button bu_cooByMap;
        Button bu_cooHere;
        double lat = 0;
        double lon = 0;

        // photo
        ImageButton ib_photo;
        Button bu_takePhoto;
        DatePicker dp_date;

        Button bu_import;
        Button bu_ok;

        public void onCreate(Bundle savedInstanceState) {

                // name
                //et_name = (EditText) findViewById(R.id.et_nevent_Name);

                // coordinates
                et_coo = (EditText) findViewById(R.id.tv_nevent_Coo);
                bu_cooByMap = (Button) findViewById(R.id.bu_nevent_CooByMap);
                bu_cooHere = (Button) findViewById(R.id.bu_nevent_CooHere);

                // photo
                ib_photo = (ImageButton) findViewById(R.id.ib_nevent_photo);
                bu_takePhoto = (Button) findViewById(R.id.bu_nevent_TakePoto);
                dp_date = (DatePicker) findViewById(R.id.dp_nevent);

                bu_import = (Button) findViewById(R.id.bu_nevent_Import);

                super.onCreate(savedInstanceState);
                setContentView(R.layout.addnew_event);

                bu_ok = (Button) findViewById(R.id.bu_nevent_ok);
                bu_ok.setOnClickListener(new View.OnClickListener() {
                        public void onClick(View v) {
                                et_name = (EditText) findViewById(R.id.et_nevent_Name);
                                String name = et_name.getText().toString();
                                if (name.equals("")) {
                                        db.open();
                                        db.insertEvent(name);
                                        db.close();
                                        Intent myIntent = new Intent(v.getContext(), Events.class);
                                        startActivityForResult(myIntent, 0);
                                } else {
                                        Toast.makeText(getApplicationContext(),
                                                        "Insert the name of event", Toast.LENGTH_LONG)
                                                        .show();
                                }
                        }
                });
        }

}


Come è possibile che se metto
Codice: [Seleziona]
et_name = (EditText) findViewById(R.id.et_nevent_Name);appena prima del bu_ok.setOnClickListener  (ma comunque dentro all onCreate mi dia errore????o_O o_O

Non basta che findViewById sia chiamato dentro l' onCreate?

Offline Gigiuz

  • Utente normale
  • ***
  • Post: 187
  • Respect: +23
    • Google+
    • gigiuzzo81
    • Gigiuz81
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Note III
  • Play Store ID:
    GGXSoft
  • Sistema operativo:
    Windows 7 64bit, OS X (virtualized), Ubuntu
Re: Unable to instantiate activity ComponentInfo
« Risposta #6 il: 13 Maggio 2011, 05:28:53 CEST »
+1
Per lo stesso motivo appena scritto >>>QUI<<< :)
Hai bisogno di implementare un sistema di "codici seriali di sblocco" nella tua applicazione? Dai un'occhiata alla mia libreria: RemoteUnlocker