Mi aplicación se compila y dice que fue exitosa, pero se cierra sin iniciarse cuando la abro en mi teléfono. ¿Hay algún problema con mi archivo de manifiesto?

Error: java.lang.RuntimeException: no se puede iniciar la actividad ComponentInfo {com.example.terik.thirdattempt / com.example.terik.thirdattempt.MainActivity}: android.view.InflateException: línea de archivo XML binario n. ° 23: error al inflar la clase android .widget.Button

Aquí está el xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.terik.thirdattempt" >
<uses-sdk android:minSdkVersion="8" />
<application
    android:allowBackup="true"
    android:icon="@drawable/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>

</manifest>

Aquí está mi diseño para las patadas y las risitas.

<TextView android:layout_width="500dp"
    android:layout_height="200dp"
    android:text="0"
    android:textSize="72pt"
    android:id="@+id/textView"
    android:layout_alignParentTop="true"
    android:layout_alignLeft="@+id/Button1"
    android:layout_alignStart="@+id/Button1"
    android:layout_marginLeft="41dp"
    android:layout_marginStart="71dp"
    android:layout_alignRight="@+id/Button1"
    android:layout_alignEnd="@+id/Button1"></TextView>

 <Button
    android:layout_width="200dp"
    android:layout_height="200dp"
    android:id="@+id/Button1"
    android:background="@drawable/custom_button"
    android:adjustViewBounds="false"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="51dp" />


</RelativeLayout>

Y supongo que mi archivo MainActivity.java

package com.example.terik.thirdattempt;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;


public class MainActivity extends ActionBarActivity {
int number = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    textView=(TextView)findViewById(R.id.textView);
}


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

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) {
        return true;
    }

    return super.onOptionsItemSelected(item);
}

public void addOne(View view){
    number = number +1;
    textView.setText(number);
}

}
0
Terik Brunson 4 feb. 2015 a las 05:17

2 respuestas

La mejor respuesta

Obtuvo una excepción de puntero nulo porque declara su vista de texto antes de la vista de contenido. Esto debería solucionar eso (pero no entiendo qué método es addOne, así que lo dejo solo):

int number = 0;
TextView textView;
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    textView = (TextView)findViewById(R.id.textView);
}


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

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) {
        return true;
    }

    return super.onOptionsItemSelected(item);
}
public void addOne(View view){
    number = number +1;
    textView.setText(number);
}
1
Randyka Yudhistira 4 feb. 2015 a las 02:25

Puede inicializar la interfaz de usuario después de setContentView (R.layout.activity_main) en la función de onCreate.

Entonces, su aplicación se bloqueó cuando inició su dispositivo. Debe inicializar TextView después de la función de onCreate de esta manera:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    textView = (TextView)findViewById(R.id.textView);
}
1
fyales 4 feb. 2015 a las 02:28