Estoy recibiendo el temido paquete R
que no existe, me está matando. El código está bien. Tengo aplicaciones en el mercado que ejecutan el código.
Ahora está efectuando webview
aplicaciones simples . o.0
R.string.app_name
está equivocado main.xml
y string.xml
está bien. Estoy tan confundido.
Volví a abrir una versión anterior a "borrow"
un código y se inundó con R. errors.
Hice una limpieza y no cambió nada, excepto que R.android
se agregó la importación en la parte superior.
Incluso cargué en Netbeans y obtengo lo mismo. Limpiar no funciona. ¿Puedo escribir el R.java
archivo yo mismo?
¿Qué es esta R
cosa? no lo es R
. se supone que corresponde aR.java
Respuestas:
Para cualquiera que se encuentre con esto, lo refactoricé cambiando el nombre de las carpetas del espacio de nombres. Me olvidé de editar también AndroidManifest y es por eso que recibí este error.
Asegúrate de marcar esto también.
fuente
Solo para hacer esto simple:
Por supuesto, reemplazando
your.app.package
con su paquete de aplicación.En todas las clases que usan referencias de recursos R, elimine cualquier otra
import
con.R
, es decirimport android.R;
fuente
phonegap platform remove android
yphonegap platform add android
TL; DR , si obtiene el error "el paquete R no existe", las posibles razones son
-> corregir errores XML
R
paquete (vea elpackage
atributo en AndroidManifest.xml)-> importar
R
clase, por ejemploimport com.example.android.R;
-> o use el paquete apropiado en su fuente, por ejemplo
package com.example.android;
-> o cambie el atributo del paquete en AndroidManifest.xml a
<manifest xmlns:android="..." package="com.example.android" ...>
, si es apropiadoR
identificadores usados son de los recursos del sistema-> no importar
android.R
, pero prefijo los identificadores ofensivos conandroid.
, por ejemplo,android.R.layout.simple_list_item_2
puede importar en
android.R
lugar de prefijar los identificadores, por supuesto, pero luego ya no puede importar laR
clase de la aplicación y debe prefijar los identificadores de la aplicación, por ejemplocom.example.android.R.id.main_menu
.La
R
clase se genera automáticamente a partir de los recursos de la aplicación. Contiene losid
s para estos recursos y está contenido en el paquete nombrado en la<manifest>
etiqueta en elAndroidManifest.xml
archivo correspondiente .Si no hay errores en los archivos XML de recursos, la
R.java
fuente se generará en un subdirectorio de paquetes a continuacióngen/
y se compilará.Hay otra
R
clase ubicada en elandroid
paquete. Estaandroid.R
clase contiene algunas clases anidadas, que a su vez contienenid
sy otros valores para los recursos del sistema .Para usar una clase en Java, debe nombrar la clase con el paquete completo, por ejemplo
o importar la clase y luego usarla sin paquete
También puede usar una clase sin nombrar el paquete, si tanto la clase actual como la clase usada están en el mismo paquete, por ejemplo
fuente
¡Nunca, nunca intentes escribir la clase R tú mismo!
¿Ha importado la clase R correcta en sus archivos?
Haciendo
en vez de
parece ser el problema para mucha gente. Después de limpiar y construir, mis clases a veces importan la incorrecta.
fuente
Si está desarrollando en Android Studio y refactorizó el nombre del paquete, debe cambiar el nombre del paquete en el manifiesto de Android y el archivo Gradle de la aplicación.
y en archivo de manifiesto
fuente
R.java es un archivo autogenerado, por lo general no se compila si tiene errores en el archivo xml.
No No puede escribir su propio archivo R.java, debe ser generado por el compilador de recursos.
Compruebe si hay errores en todos sus archivos xml.
fuente
La clase R es un código Java generado automáticamente a partir de sus archivos XML (diseño de interfaz de usuario, cadenas de internacionalización, etc.) Si el código solía funcionar antes (como parece), debe decirle a su IDE que regenere estos archivos de alguna manera :
fuente
Supongo que solía funcionar pero ahora ya no ...
Esto puede suceder si cambia el nombre del PAQUETE dentro de su archivo MANIFEST
Si desea cambiar el nombre del paquete
fuente
com.example.rickydam.txtbooks
acom.txtbooks.txtbooks
haciendo un nuevo proyecto y moví todo al nuevo proyecto pero no pude encontrar R. Intenté invalidar cachés, sincronizar con gradle, limpiar el proyecto, reconstruir el proyecto, reinstalar SDK-tools ... ¡Nada funcionaba! ¡Pero tu solución solucionó mi problema! ¡Gracias de nuevo! ¡Sigue codificando!Me encontré con este error mientras usaba Bazel para crear una aplicación de Android:
Asegúrese de que su
android_library
/android_binary
esté usando un atributoAndroidManifest.xml
correctopackage=
, y si está usando elcustom_package
atributo enandroid_library
oandroid_binary
, asegúrese de que esté escrito correctamente.fuente
Eliminar importación android.R; de todos los archivos ... una vez que limpie el proyecto y compile el proyecto ...
fuente
Ejemplo: Mi paquete es com.example.mypc.f01 , para corregir el error, agregue la siguiente línea a la Actividad:
import com.example.mypc.f01.R;
fuente
A continuación se muestran algunas técnicas que puede utilizar para eliminar este error: -
fuente
En mi caso, me di cuenta de que estaba creando varios paquetes en el proyecto. Dentro del Manifiesto de Android, encontré que el nombre del proveedor contenía incorrectamente el valor de MyContentProvider en lugar de .provider.MyContentProvider. Mi paquete principal (con la interfaz de usuario) era co.companyname.database.provider en lugar de co.companyname.database.
Luego, en las declaraciones de importación para la clase afectada, simplemente hice clic con el botón derecho y le pedí a Android Studio (0.8.6) que optimizara mis declaraciones de importación. También noté que si busca .R en la barra de búsqueda AS en la esquina superior derecha del IDE, puede encontrar un archivo R.java generado automáticamente que es parte de su paquete. En este punto, no tienes que cambiar nada. Studio debería arreglar el proyecto después de corregir el archivo de manifiesto de Android y reconstruirlo.
Otro elemento es que en una clase estaba haciendo uso de toString (). Length () para evaluar una cadena, pero las cambié por TextUtils.IsEmpty (stringVal); No puedo pensar en nada más que hice para resolver el problema.
Espero que esto ayude a alguien.
NB - Todo esto es con AS 0.8.6
PD
R.java se genera automáticamente, así que lea el encabezado: / * ARCHIVO GENERADO AUTOMÁTICAMENTE. NO MODIFIQUE. * * Esta clase fue generada automáticamente por la herramienta * aapt a partir de los datos de recursos que encontró. * No debe modificarse a mano. * /
fuente
Cuando experimenté esto, creé un nuevo proyecto y copié los archivos de mi antiguo proyecto al nuevo.
Sin embargo, todavía tenía el mismo problema:
R does not exist
. Luego me di cuenta de que había copiado y pegado Manifest desde mi bloc de notas en los manifiestos de Android Studio y no había cambiado el nombre del paquete en el archivo de manifiesto.Por lo tanto, una vez que cambié el nombre del paquete en el manifiesto al nuevo nombre del proyecto, el nuevo proyecto que había creado funcionó bien.
fuente
¿Qué archivos está importando a los archivos que reciben el error R?
Según tengo entendido, el archivo R es que se generan automáticamente listas de referencia para todos los atributos dentro de la aplicación de Android. Por lo tanto, no puede cambiarlo usted mismo.
¿Estás usando Eclipse para construir este proyecto? ¿Se cometieron estos errores en los proyectos más antiguos antes de actualizar Eclipse? ¿Cuáles son las referencias que están obteniendo errores?
Verifique que no haya importado otro archivo R de otro código copiado en otra aplicación.
fuente
Me encuentro con este problema cada vez que cambio de computadora e intento importar proyectos antiguos desde archivos transferidos a través de un USB.
Mi solución es simplemente crear un nuevo proyecto y copiar (arrastrar) los archivos al IDE (actualmente usando Netbeans) y reconstruir. Esto es una molestia y una solución un poco hacky, pero soluciona el problema.
Si esto le sucede, el peor de los casos es que tenga que hacer una copia de seguridad de sus archivos, eliminar el proyecto y simplemente arrastrar los archivos allí y volver a compilarlos. Ojalá no llegue a eso, pero esa sería su opción nuclear.
fuente
Puedes intentar
Menú superior de Android Studio> Archivo> Invalidar cachés / reiniciar ...
Haga clic en el botón invalidar caché / reiniciar para reiniciar su proyecto
Resuelva R.xxxx.xxx nuevamente si algunos fragmentos de la clase R no se resolvieron correctamente
luego reconstruye tu proyecto
Espero eso ayude
fuente
Si encuentra este error en Android Studio:
Verifique los archivos del módulo Gradle -> defaultConfig -> applicationId setting.
Compruebe la etiqueta del paquete de manifiesto AndroidManifest.xml ->.
Verifique las declaraciones del paquete en todos los archivos src java.
Sincronizar, limpiar y luego reconstruir con Gradle.
NUNCA cree su propio archivo R. R se genera automáticamente a partir de los archivos de origen java y la configuración de compilación.
fuente
Tenía: "error: el paquete R no existe" y asumí que javac no tenía acceso a R.java.
Así que agregué% PROJ_LOC% \ gen a sourcepath, ¡y funcionó! SOURCEPATH =% PROJ_LOC% \ src;% PROJ_LOC% \ gen
No estoy usando Android Studio o Ant (o XML).
fuente
Si este error apareció después de resolver los conflictos de fusión, un proyecto simple Build -> Clean podría ayudar.
fuente
Acabo de deshacerme del error en mi proyecto. Había importado un proyecto de muestra, había cambiado las carpetas del paquete pero no había actualizado el paquete en uno de los archivos java.
La causa más probable de este error "el paquete R no existe" es que el nombre del paquete en Java o el archivo de manifiesto es incorrecto. Asegúrese de que sea correcto y esté sincronizado y luego haga una construcción limpia.
fuente
A veces, se resuelve cuando simplemente vuelve a importar el proyecto a Android Studio.
fuente
Ruta incorrecta: el proyecto "cobra" los punteros a las imágenes y si ha realizado cambios de nombre en la ruta, por ejemplo, paquetes o carpetas refactorizados. Luego, simplemente escriba la letra R nuevamente y el editor sugiere la ruta correcta y funcionará. En este caso, sus nombres de archivo son correctos y el contenido al que se hace referencia en el puntero R. está presente, pero la ruta es incorrecta, por lo que limpiar y compilar no funcionará.
fuente
Otro caso de rotura de R. es el procesamiento de anotaciones .
Algunos procesos podrían referirse a clases ubicadas en determinadas carpetas o niveles de carpeta. Si mueve las clases requeridas a otra ubicación, puede obtener R. como una clase desconocida.
Desafortunadamente, el indicador de error de este problema no es evidente en Android Studio.
fuente
No hay beneficio de escribir R.java usted mismo porque se cambia en cada compilación,
Solo recuerde usar R.something, por ejemplo: R.raw.filename desde clases internas que tiene un valor de paquete similar al valor de paquete dentro de AndroidManifest.xml
porque los ID de recursos de R. se definen para la aplicación o biblioteca actual y todos se verifican si existen en el tiempo de compilación, por lo que no tiene sentido permitir que se acceda a ellos desde un "código" que no se dirige a la aplicación o biblioteca actual y puede ser utilizado en otros lugares.
fuente
Olvidé agregar el "nombre" de mi "paquete" en la parte superior de mi clase Java. Verifique si el suyo está realmente agregado.
fuente
Soluciono mi problema:
.
Ir a
AndroidManifest.xml
archivo y cambiar elminSDKVersion="17"
de 19fuente