Tengo la excepción del título cuando ejecuto mi aplicación. Lo que hace es que tiene una .archivo de texto con las palabras de un Ahorcado juego y creo que la excepción se produce cuando el acceso al archivo. Mi archivo, cuvinte.txt se encuentra en /assets/. Aquí está mi código (me he saltado el diseño/parte de xml, que funciona bien):

public void onCreate() {
    //all the onCreate() stuff, then this:
    try {
        AssetManager am = this.getAssets();
        InputStream is = am.open("cuvinte.txt");
        InputStreamReader inputStreamReader = new InputStreamReader(is);
        BufferedReader b = new BufferedReader(inputStreamReader);
        String rand;
        while((rand=b.readLine())!=null){
            cuvinte.add(rand);
        }
    } catch (IOException e) {
        Toast.makeText(this, "No words file", Toast.LENGTH_LONG).show();
        e.printStackTrace();
    }

    newGame(newG);
}

public void newGame(View view){
    Random rand = new Random();
    String stringCuvant = cuvinte.get(rand.nextInt(cuvinte.size()));
    cuvant.setText("");
    System.out.println(stringCuvant);
    for(int i = 0; i< stringCuvant.length(); i++){
        cuvant.append("_ ");
    }
    incercari.setText(valIncercari);
}

La función newGame() se llama cuando el nuevo juego se presiona el botón y en el comienzo de la actividad, en la función onCreate ().

  • publica tu logcat excepción!
  • debe cerrar los lectores, después de que haya terminado con ellos
  • Por el bien de profesionalidad, por favor, el nombre de las variables en inglés 🙂
  • En mi caso, he experimentado esto porque yo estaba tratando de pasar de un parámetro int dentro de un setText() función.
InformationsquelleAutor FloIancu | 2012-06-25

6 Comentarios

  1. 481

    (Sólo la asunción, a menos info de Excepción stacktrace)

    Creo que, en esta línea, incercari.setText(valIncercari); lanza la Excepción
    porque valIncercari es int

    Por lo que debe ser,

    incercari.setText(valIncercari+"");

    O

    incercari.setText(Integer.toString(valIncercari));
    • o mejor aún: Integer.toString(valIncercari);
    • De código anterior no hay ninguna otra línea de código que causa esta excepción. Sólo la línea que me he apuntado en mi respuesta.
    • Gracias. Me han llegado a través de este tipo de problema, pero cada vez que mostró un error de sintaxis para la incompatibilidad de tipos (String requerido vs int dado). Es por eso que ni siquiera se tomó en cuenta que puede ser el problema.
    • mismo como Cadena.valueOf(); que se hace llamar Entero.toString y sus respectivos métodos toString
    • Me pregunto por qué Android Studio no los consejos. Tuve el mismo problema al establecer un valor int en el TextView.setText para el error.
    • porque setText(int) también se utiliza para obtener la cadena de recursos por id. Y En Android todos los id de recurso ha int valor.
    • Estaba luchando por el mismo desde hace dos días. Limpiar, reconstruida invalidado caché y lo que no. Bdw esto debe ser manejado de forma automática.. No se espera.
    • Exactamente a la derecha. Era un entero
    • De la cadena.el formato es la forma recomendada. setText(String.( formato de la configuración Regional.NOSOTROS, «%d», valIncercari ));
    • La respuesta correcta. Yo estaba tratando de textview.settext(integer). Ahora tengo que reemplazar mi código con textview.settext(String.valueOf(entero)); y de sus obras. Gracias.

  2. 12

    Sólo quería señalar otra razón por la que este error puede ser lanzados es si se define una cadena de recursos para la traducción de su aplicación, pero no proporcionan una cadena predeterminada de recursos.

    Ejemplo de la Cuestión:

    Como se puede ver a continuación, tuve un recurso de cadena para un español de la cadena «get_started». Todavía puede ser que se hace referencia en el código, pero si el teléfono no está en español, no tendrá ningún recurso para carga y falla al llamar getString().

    values-es/strings.xml

    <string name="get_started">SIGUIENTE</string>

    Referencia a los recursos

    textView.setText(getString(R.string.get_started)

    Logcat:

    06-11 11:46:37.835    7007-7007/? E/AndroidRuntime FATAL EXCEPTION: main
    Process: com.app.test PID: 7007
    android.content.res.Resources$NotFoundException: String resource ID #0x7f0700fd
            at android.content.res.Resources.getText(Resources.java:299)
            at android.content.res.Resources.getString(Resources.java:385)
            at com.juvomobileinc.tigousa.ui.signin.SignInFragment$4.onClick(SignInFragment.java:188)
            at android.view.View.performClick(View.java:4780)
            at android.view.View$PerformClick.run(View.java:19866)
            at android.os.Handler.handleCallback(Handler.java:739)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5254)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)

    Solución para el Problema

    La prevención de este es bastante sencillo, sólo asegúrese de que usted siempre tiene un defecto de recurso de cadena en values/strings.xml de modo que si el teléfono está en otro idioma será siempre un recurso al que volver.

    values/strings.xml

    <string name="get_started">Get Started</string>

    values-en/strings.xml

    <string name="get_started">Get Started</string>

    values-es/strings.xml

    <string name="get_started">Siguiente</string>

    values-de/strings.xml

    <string name="get_started">Ioslegen</string>
    • Éste golpeó cuando he copiado los recursos de un Android Studio proyecto a otro y he copiado el strings.xml archivo. Debido a algunas de almacenamiento en caché/recarga/lo que sea, se descarta el nuevo archivo y se mantiene la antigua. Así, tuve la cadena de id de la traducción, pero no desde el llano string.xml
  3. 10

    Otro escenario que puede causar esta excepción es con el Enlace de datos,
    que es cuando se usa algo como esto en su diseño

    <?xml version="1.0" encoding="utf-8"?>
    <layout xmlns:android="http://schemas.android.com/apk/res/android">
    
        <data>
    
            <variable
                name="model"
                type="point.to.your.model"/>
        </data>
        <TextView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:text="@{model.someIntegerVariable}"/>
    
    </layout>

    Observe que la variable que estoy usando es un Entero y estoy de asignar a la campo de texto del TextView. Desde el TextView ya tiene un método con la firma de setText(int) va a utilizar este método en lugar de utilizar el setText(String) y convertir el valor. Así, el TextView piensa de su número de entrada como el valor de un recurso que, obviamente, no es válido.

    Solución es lanzar su valor int a string como este

    android:text="@{String.valueOf(model.someIntegerVariable)}"
    • Gracias, me ayudó. También después de que usted necesita para Build -> Clean Project en Android Studio para volver a generar el Enlace de Datos clases.
  4. 5

    Este problema se produce principalmente debido a que el error en setText() método

    Solución es simple poner su Integer valor mediante la conversión en string tipo
    como

    textview.setText(Integer.toString(integer_value));
  5. 1

    En algún momento esto sucedió debido a que no es aficionado a cualquier fuente como si quiero establecer un texto en un textview de adaptador de entonces debo usar

     textView.setText(""+name);

    Si escribes algo como

     textView.setText(name);

    esto no va a funcionar y a veces no encontramos el recurso de la string.xml archivo, a continuación, este tipo de error se producen.

  6. 0

    El uso de Enlace de datos y la configuración de fondo para el edittext con recursos provenientes de la carpeta dibujable hace que la excepción.

    <EditText
                                android:background="@drawable/rectangle"
                                android:imeOptions="flagNoExtractUi"
                                android:layout_width="match_parent"
                                android:layout_height="45dp"
                                android:hint="Enter Your Name"
                                android:gravity="center"
                                android:textColorHint="@color/hintColor"
                                android:singleLine="true"
                                android:id="@+id/etName"
                                android:inputType="textCapWords"
                                android:text="@={viewModel.model.name}"
                                android:fontFamily="@font/avenir_roman"/>

    Solución

    Acabo de cambiar el fondo de android:background="@drawable/rectangle" a android:background="@null"

    Limpiar y Reconstruir el Proyecto.

Dejar respuesta

Please enter your comment!
Please enter your name here