|
||
|
![]() |
![]() |
Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android |
![]() |
|
Herramientas |
#1
|
||||
|
||||
![]()
Estoy empezando a meterme en el mundo de la programacion android pero tengo el siguiente problema. Cuando escribo codigo java y ejecuto la aplicacion en un AVD la app se detiene y no abre, en la consola me aparece lo siguiente:
04-15 19:02:45.731: D/dalvikvm(1028): Not late-enabling CheckJNI (already on) 04-15 19:02:46.531: D/AndroidRuntime(1028): Shutting down VM 04-15 19:02:46.531: W/dalvikvm(1028): threadid=1: thread exiting with uncaught exception (group=0xb1a3bba8) 04-15 19:02:46.631: E/AndroidRuntime(1028): FATAL EXCEPTION: main 04-15 19:02:46.631: E/AndroidRuntime(1028): Process: com.example.primeraprueba, PID: 1028 04-15 19:02:46.631: E/AndroidRuntime(1028): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.primeraprueba/com.example.primeraprueba.MainActivity}: java.lang.NullPointerException 04-15 19:02:46.631: E/AndroidRuntime(1028): at android.app.ActivityThread.performLaunchActivity(A ctivityThread.java:2121) 04-15 19:02:46.631: E/AndroidRuntime(1028): at android.app.ActivityThread.handleLaunchActivity(Ac tivityThread.java:2245) 04-15 19:02:46.631: E/AndroidRuntime(1028): at android.app.ActivityThread.access$800(ActivityThre ad.java:135) 04-15 19:02:46.631: E/AndroidRuntime(1028): at android.app.ActivityThread$H.handleMessage(Activit yThread.java:1196) 04-15 19:02:46.631: E/AndroidRuntime(1028): at android.os.Handler.dispatchMessage(Handler.java:10 2) 04-15 19:02:46.631: E/AndroidRuntime(1028): at android.os.Looper.loop(Looper.java:136) 04-15 19:02:46.631: E/AndroidRuntime(1028): at android.app.ActivityThread.main(ActivityThread.jav a:5017) 04-15 19:02:46.631: E/AndroidRuntime(1028): at java.lang.reflect.Method.invokeNative(Native Method) 04-15 19:02:46.631: E/AndroidRuntime(1028): at java.lang.reflect.Method.invoke(Method.java:515) 04-15 19:02:46.631: E/AndroidRuntime(1028): at com.android.internal.os.ZygoteInit$MethodAndArgsCa ller.run(ZygoteInit.java:779) 04-15 19:02:46.631: E/AndroidRuntime(1028): at com.android.internal.os.ZygoteInit.main(ZygoteInit .java:595) 04-15 19:02:46.631: E/AndroidRuntime(1028): at dalvik.system.NativeStart.main(Native Method) 04-15 19:02:46.631: E/AndroidRuntime(1028): Caused by: java.lang.NullPointerException 04-15 19:02:46.631: E/AndroidRuntime(1028): at android.app.Activity.findViewById(Activity.java:18 84) 04-15 19:02:46.631: E/AndroidRuntime(1028): at com.example.primeraprueba.MainActivity.<init>(Main Activity.java:17) 04-15 19:02:46.631: E/AndroidRuntime(1028): at java.lang.Class.newInstanceImpl(Native Method) 04-15 19:02:46.631: E/AndroidRuntime(1028): at java.lang.Class.newInstance(Class.java:1208) 04-15 19:02:46.631: E/AndroidRuntime(1028): at android.app.Instrumentation.newActivity(Instrument ation.java:1061) 04-15 19:02:46.631: E/AndroidRuntime(1028): at android.app.ActivityThread.performLaunchActivity(A ctivityThread.java:2112) 04-15 19:02:46.631: E/AndroidRuntime(1028): ... 11 more Si alguien me puede ayudar se lo voy a agradecer ya que estoy muy trabado con este problema. |
|
#3
|
||||
|
||||
Creo que la linea 17 es la creacion del TextView:
public class MainActivity extends ActionBarActivity { TextView texto = (TextView)findViewById(R.id.texto); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if (savedInstanceState == null) { getSupportFragmentManager().beginTransaction() .add(R.id.container, new PlaceholderFragment()) .commit(); } Button boton = (Button) findViewById(R.id.boton); boton.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { texto.setText("El boton anda."); } }); } |
#4
|
||||
|
||||
Estuve probando un poco y es solo cuando creo un proyecto con ActionBar, en los otros no me pasa. Note que cuando creo una proyecto con ActionBar, se crea un proyecto mas llamado "appcompat_v7" el cual creo que es el causante de mi problema. Queria saber porque se crea ese proyecto, para que sirve y como hacer para poder correrlo en un AVD correctamente.
|
#5
|
||||
|
||||
El error te saldrá tanto en AVD o un dispositivo, el problema según he entendido es que no has vinculado la librería de soporte appcompat_v7. Para hacerlo click derecho sobre el proyecto /propiedades/Android/Add library y ahí agregas el proyecto. Ahora en lugar de extender a tu MainActivity a Activity extiende a ActionBarActivity....
|
#6
|
||||
|
||||
h0nGoLoco, si fuese así el proyecto ni compilaría, así que ese no es el problema.
joaco_bozzalla, el problema está en la segunda línea: TextView texto = (TextView)findViewById(R.id.texto); Como ese código está en el ambito global de la aplicación se ejecuta antes del onCreate, y por tanto antes del setContentView, así que cuando se ejecuta la línea el resultado es NULL porque no puede encontrar a R.id.texto Solución, quita el código de ahí y ponlo justo después del setContentView en el onCreate. |
#7
|
||||
|
||||
Muchas gracias a todos, era el problema del TextView que lo tenia que mover de lugar.
|
#8
|
||||
|
||||
KriogeN porque me preguntaste que pasaba en la linea 17? Es decir, como te diste cuenta que el problema estaba ahi?
|
#9
|
||||
|
||||
Por esta línea del Logcat:
04-15 19:02:46.631: E/AndroidRuntime(1028): at com.example.primeraprueba.MainActivity.<init>(Main Activity.java:17) |
#10
|
||||
|
||||
Ahh okay, muchas gracias
![]() |
![]() |
![]() |
||||||
|