java - studio - Errores comunes al escribir el proyecto de Android
problemas con gradle en android studio (13)
Aunque no se puede llamar un error (pero error) La mayoría de las veces me olvido de agregar los permisos (es decir, CAMERA, WRITE_EXTERNAL_STORAGE) en el archivo AndroidManifest.
¿Cuáles son los errores comunes que se deben tener en cuenta al trabajar en el proyecto de Android?
Estos pueden ser
- Error específico de Android
- Error específico de Java
El error o problema más común se produce cuando creamos un proyecto en Eclipse y tenemos que dar un nombre de paquete que contenga al menos un dot (.)
, Pero la mayoría de los principiantes no son conscientes de esto.
Al igual que el nombre del paquete de aplicación de Android debe tener dos niveles.
por ejemplo, com.myapp
pero todos los principiantes quedaron atrapados en ese punto.
Enumeraré algunos errores que siempre consigo.
Artículo - Top 10 errores de Java
Error NullPointer
- Cuando uso una variable inicializada o un objeto que estamos creando. (Java)
- cuando usamos una vista de diseño que no está en xml lo que configuramos en contexto. (Android)
- ClassCast Exception
- cuando un programa intenta convertir un objeto a un tipo con el que no es compatible. (p. ej., cuando intento utilizar un diseño lineal que se declara como un diseño relativo en el diseño xml).
- Error
- también puede ocurrir en programas escritos correctamente (pero profundamente recursivos). (Java y Android)
- Cuando un programa se vuelve infinitamente recursivo.
- creamos un diseño (profundo y complejo) que supera esa pila de plataforma o máquina virtual. Recursivo o demasiado diseño creará error de desbordamiento de pila en Android
- Demasiados diseños interiores.
ActivityNotFoundException : no se puede encontrar la excepción de clase de actividad explícita
- La actividad no está declarada en manifiesto.
- Android securityException
- Debe declarar todos los permisos en la aplicación. Manifieste que su aplicación verifique este link (Internet, acceso a contactos, gps, estado de wifi, escritura en una tarjeta SD, etc.).
- Error de memoria insuficiente
- cuando se realiza una solicitud de memoria que no se puede satisfacer con los recursos de plataforma disponibles. Principalmente utilizando mapa de bits, galería, etc.
La aplicación no responde (ANR)
- Principalmente ocurre cuando está haciendo una función de red, o un proceso largo.
esto bloqueará el subproceso de la interfaz de usuario para que el usuario no pueda realizar ningún trabajo para evitar ANR lee esto y this
Esto es lo que obtengo principalmente al crear un proyecto de Android.
- Trate de usar el bloque Try - Catch en All Place of program. No deje su bloque catch vacío, ya que esto puede ocultar errores:
Sí:
try{
// try something
} catch (Exception e) {
Log.e("TAG", "Exception in try catch", e);
return false;
}
return true;
No:
try{
// try something
} catch (Exception e) {
return false;
}
return true;
Use la conversión de nombres adecuada para todas las variables e ID en el diseño. *
Leí un artículo de la red que contiene algún error ahora que estoy agregando que alos si tiene redundancia, por favor, perdóname.
Problema : mi anteriormente agradable RelativeLayout está haciendo un montón feo o algunos elementos ya no son visibles ... ¿Qué está pasando? Acabo de mover un elemento en él ... Solución: Nunca olvide que en un RelativeLayout, se hace referencia a los elementos y se colocan en relación con sus vecinos. Tal vez haya algo malo en la jerarquía de relaciones entre su elemento. Intente abrir la vista de esquema en Eclipse y haga clic en cada elemento para ver dónde hay una ruptura.
Problema : las dependencias circulares no pueden existir en RelativeLayout Solución: Probablemente haya escrito la misma dependencia de dos maneras diferentes. Por ejemplo, un ImageView como atributo android: layout_toRightOf a TextView y TextView tiene android: layout_toLeftOf the ImageView. Solo una de ellas es necesaria.
Problema : escribí un estilo para una de mis vistas / diseño, pero cuando lo aplico en mi xml, no tengo una pantalla en el visor de diseño de Eclipse. Solución: Desafortunadamente, esto parece ser un error del ADT de Android, informé pero no hay noticias hasta ahora. De todos modos, no hay pánico, los estilos funcionan bien, pero no se muestran correctamente en Eclipse. Simplemente cree la aplicación y ejecútela en el emulador o el teléfono y verá si todo está bien o no.
Problema : Toast está escrito correctamente pero no se muestra nada Solución: Este es un error común de uso: simplemente agregue el método .show () para mostrar el Toast y vea si está funcionando bien.
Problema : traté de mostrar una cadena desde strings.xml, pero solo tenía un número como 0x7f060001 Solución: Esto no es un error, solo una pantalla debido a la forma en que Android trata los recursos. Cuando desee recuperar un recurso, debe usar un método como getString (R.id.something), getDrawable, ... De lo contrario, solo mostrará la referencia escrita en la clase R
Problema : Algunos cambios en el código no tienen ningún efecto en la solución de la aplicación: hay 2 opciones, ya sea que haya olvidado algo como el .show () de Toast, o el emulador no está actualizando su aplicación correctamente. En ese caso, debe marcar la opción "Borrar datos del usuario" en la configuración de inicio del emulador en Eclipse.
Problema : ¿Cómo mostrar los bordes en mi mesa? Solución: No hay una forma directa de hacerlo en Android, tiene que usar un truco: http://www.droidnova.com/display-borders-in-tablelayout,112.html
Problema : el emulador está escribiendo en japonés sin que haya cambiado ningún parámetro Solución: Esto sucede a veces, es muy fácil de corregir, solo haga clic en cualquier campo de Editar Texto, y cambie el tipo de entrada a lo que desee
Problema : el menú contextual no aparece en el emulador Solución: al hacer clic en el emulador no parece que se registre en todo tipo de vistas, debe pulsar el botón en el centro de las 4 flechas direccionales
Problema : estoy siguiendo un tutorial sobre la ruta del mapa, pero no consigo que funcione, android no encuentra un paquete Solución: es posible que haya estado siguiendo un tutorial escrito para 1.5 SDK. En este momento, había un paquete para mostrar la ruta en Android, pero se eliminó en el próximo SDK y ya no está disponible. Simplemente ya no es posible. Parece que hay un truco con los archivos KML pero nada oficial
Problema : el envío de coordenadas al emulador da una posición incorrecta Solución: asegúrese de que escribió la coordenada como 51.16548 y no 51,16548 ni 5116548
Problema : solo el hilo original que creó una jerarquía de vistas puede tocar sus vistas. Solución: debe haber intentado actualizar el contenido de una vista desde otro subproceso que no sea el subproceso de la interfaz de usuario. 2 opciones para parchear esto: cree un controlador en su hilo de UI y publique su Runnable en este controlador O use el método runOnUIThread para ejecutar las líneas de código que están realizando la actualización
Problema : el acceso a localhost 127.0.0.1 no funciona Solución: funciona, simplemente no lo está haciendo de la manera correcta: use 10.0.2.2
Error de Monster OutOfMemoryError: el tamaño del mapa de bits supera el presupuesto de la máquina virtual
La aplicación se bloquea sin aviso cuando se gira el teléfono (la rotación automática está habilitada en el teléfono). Esto tiene que ver con la "orientación". Hay algunas soluciones, la más simple es tener android:preferedOrientation="portrait"
establecido en el archivo de manifiesto para cada actividad. Además, establezca en código esto si está creando actividades dinámicamente. Otras soluciones incluyen el tratamiento adecuado de los métodos de actividad onPause, onRestart ... y así sucesivamente (como guardar estado y cosas).
Otro error o error común es:
Mientras ampliamos nuestra actividad con la ListActivity.
public class ListViewDemo extends ListActivity
{
// some code here
}
Y siempre se olvidó de agregar id android:id="@id/android:list"
a la etiqueta ListView
en el diseño XML.
Y el adaptador lanza NullPointerException
debido a la identificación predeterminada de android:id="@+id/ListView01
Otro error típico de un principiante es no limpiar el proyecto después de haber tenido un error en el xml ...
Tenemos que cerrar correctamente la base de datos y el cursor de Sqlite.
Si no, la pérdida de memoria y la excepción para cerrar el servidor y la base de datos vendrán
Un error que cometo una y otra vez es tratar de establecer una propiedad de color utilizando un identificador de recursos.
Puedo configurar el texto de mi vista proporcionando un ID de recurso entero,
view.setText(R.string.my_text);
pero si intento lo mismo para un color, terminaré con un tono de gris oscuro, independientemente del valor de color real especificado:
view.setBackgroundColor(R.color.my_colour);
El problema es que en Android los colores se representan como valores enteros ARGB de 32 bits, por lo que eso es lo que se espera en el parámetro int. Debería ser:
view.setBackgroundColor(context.getResources().getColor(R.color.my_colour));
java.net.SocketException si el usuario no define el permiso para internet en el archivo mainfest mientras usa el servicio web
un error común es nullPointerException ...
- Olvidarse de registrar nuevas actividades en el manifiesto.
- Convertir al tipo incorrecto en findViewById () al obtener referencias a los widgets de la interfaz de usuario
- declarando el
<uses-library android:name="com.google.android.maps" />
en el lugar equivocado dentro del manifiesto. - olvidando
show()
un brindis. - (Añadido 2011/05/28) adaptador db que se basa en una columna
_id
. Ver este thread
Tampoco directamente un error, sino un error:
- Que la base de datos SQLite (por lo que un archivo) se encuentra en el disco duro. Se encuentra en el archivo de imagen del emulador ... Más información here