Renombrando el paquete que R.java genera en
android eclipse (7)
Estoy usando eclipse y creé un proyecto de prueba de Android y el paquete en la carpeta "gen" que contiene R.java
actualmente se llama com.something.test
(¡pensé que solo estaba probando pero construí toda mi aplicación en él!)
Se hace referencia a esto cuando se carga la aplicación y el teléfono a veces la muestra, así que necesito cambiarle el nombre. ¡Intenté esto haciendo clic en refactor pero lo regeneró nuevamente con el nombre antiguo!
¿Puedo cambiarle el nombre?
Haga clic derecho en su proyecto, luego en Herramientas de Android -> Cambiar nombre de la aplicación:
O, si desea hacerlo manualmente, vaya a su archivo de manifiesto, cambie el nombre del paquete y haga un Proyecto Limpio.
Otra cosa para verificar es si tiene vistas personalizadas con espacios de nombres xml. Me tomó un minuto darme cuenta de que tenía que cambiar el atributo xmlns.
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:myxmlnamespace="http://schemas.android.com/apk/res/com.mynew.packagename"
...
Para aquellos que intentan cambiarlo manualmente, las declaraciones de que el archivo R.java está vinculado son correctas. Si simplemente lo cambia en el manifiesto, obtendrá una larga secuencia de errores "No se puede resolver R" en todos sus archivos java que hacen referencia a los recursos. Para corregir eso, deberá agregar una importación para la clase R en cada uno de esos archivos.
Entonces, si tenía su paquete originalmente como "com.mycomp.myapp.android" y lo cambió a "com.mynewcomp.myapp.android", tendría que ingresar a cada archivo de clase java y agregar:
import com.mynewcomp.myapp.android.R;
Si ejecuta el comando de cambio de nombre sugerido originalmente en el proyecto, esto se hace automáticamente.
Replanté mi paquete uno por uno usando el botón derecho del mouse-> Refactor y Android Manifest.XML. Mi archivo R todavía se basa en el nombre del paquete anterior.
Cerrar y abrir el proyecto solucionó este problema, pero tenía que ir y hacer un cambio manual en todos mis archivos java.
Sé que es una pregunta antigua, pero la necesitaba ahora y tal vez alguien más la necesite también. Estoy usando Android Studio 2.1.1
Para hacerlo funcionar tuve que cambiar:
- paquete - en AndroidManifest.xml
- applicationId - en build.gradle de la carpeta de la aplicación
De esta manera no había necesidad de importar R en cada clase java.
Es importante recordar que esto no es un cambio habitual y no se debe hacer todo el tiempo.
El vínculo applicationId vs. nombre del paquete explica la diferencia entre ellos y por qué no deben cambiarse.
Se nombra al paquete raíz de su aplicación. Si cambia el paquete raíz de su aplicación a otra cosa, R.java existirá en ese paquete ahora.
Verifique el AndroidManifest.xml
, hay un atributo de package
en el elemento de nivel superior <manifest>
. Ahí es donde se genera R.java
y debes tener cuidado al cambiarle el nombre.