@SuppressWarnings vs @SuppressLint
¿Puede alguien explicarme las diferencias entre @SuppressWarnings
y @SuppressLint
? ¿Cuándo debemos usar uno sobre otro?
He leído la documentación, pero todavía no entiendo las diferencias. Explicar usando un ejemplo / código de ejemplo será muy apreciado. Gracias.
- Confirmación de mi comprensión del principio de Android Concept (uso de múltiples actividades)
- Numberpicker lanza ArrayIndexOutOfBoundsException al desplazarse por los valores
- ¿Por qué esta variable se establece en cadena vacía cuando ya se inicializa a una cadena vacía?
- ¿Cómo puedo eliminar caracteres no reconocidos que vuelven de un servicio web?
- Mostrar el nombre del dispositivo Android Bluetooth
- Estructura de datos eficiente con dos teclas
- Cómo limitar la búsqueda de ubicación cercana según la ubicación actual mediante google maps en android?
- Teclado personalizado: manejo del tipo de entradaTipo
- Obtenga el contexto de aplicación de la clase singleton de no actividad
- En una aplicación de Android, ¿debo tener un proveedor de contenido por tabla o sólo uno para toda la aplicación?
- Establecer el color de fondo: Android
- ¿Cómo se utiliza un valor hexadecimal para especificar el color en un LinearGradient en android
- Convertir cadena a entero / flotante / doble
En realidad hay dos lints: uno pertenece al compilador, por lo que es específico de Java, y uno pertenece a Google y es específico de Android.
Si tu advertencia trata de algo en Java que no es específico de Android, se suprime con @SuppressWarnings
, y si es específico de Android, se suprime con @SuppressLint
.
Avisos de Lint de Android
Las advertencias de Lint se enumeran aquí: http://tools.android.com/tips/lint-checks
Así que digamos que tiene una advertencia sobre los permisos que faltan, y la descripción de advertencia comienza "Esta comprobación explora a través de su código y bibliotecas y mira las API que se están utilizando, y comprueba esto contra el conjunto de permisos necesarios para acceder a esas API". En la página de advertencias de pelusa que se ha enlazado anteriormente, encontramos lo siguiente:
MissingPermission
Resumen: Permisos perdidos
Prioridad: 9/10 Gravedad: Error Categoría: Corrección
Esta comprobación explora a través de su código y bibliotecas y mira las API que se están utilizando, y comprueba esto contra el conjunto de permisos necesarios para acceder a esas API. Si el código que utiliza esas API se llama en tiempo de ejecución, entonces el programa se bloqueará.
Además, para los permisos que son revocables (con targetSdkVersion 23), el código de cliente también debe estar preparado para manejar las llamadas que lanzan una excepción si el usuario rechaza la solicitud de permiso en tiempo de ejecución.
Así que para suprimir esto, ponemos esta anotación en el código:
@SuppressLint("MissingPermission")
Advertencias del compilador
Digamos que encontramos esta advertencia:
"Cast no verificado: 'java.lang.Object' a 'java.lang.Integer' …"
Si está leyendo esto en la ventana emergente en Android Studio, hay un enlace More...
al final. Al hacer clic en el enlace More...
, el texto se expande y se encuentra en la parte inferior:
"Sugerencia: Pase -Xlint: desmarcado a javac para obtener más detalles."
Esto le dice que usted usaría "unchecked" en la anotación como esto:
@SuppressWarnings("unchecked")
Para obtener una lista de advertencias del compilador, ejecute javac -X
:
C:\>javac -X -Xlint Enable recommended warnings -Xlint:{all,auxiliaryclass,cast,classfile,deprecation,dep-ann,divzero,empty,fallthrough,finally,options,overloads,overrides,path,processing,rawtypes,serial,static,try,unchecked,varargs,-auxiliaryclass,-cast,-classfile,-deprecation,-dep-ann,-divzero,-empty,-fallthrough,-finally,-options,-overloads,-overrides,-path,-processing,-rawtypes,-serial,-static,-try,-unchecked,-varargs,none} Enable or disable specific warnings . . .
Estos son los valores que puede utilizar en @SuppressWarnings
.
- Android O (API 26) El emulador de vista previa no se inicia
- ¿Cómo supervisar tráfico HTTP / URLs en Android?