Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


La llamada requiere el nivel 23 de API: error getForeground (), pero es un método FrameLayout ya que API 1

Resumen

Finalmente encontré el problema relacionado, setForeground() incorrectamente marcado como requerir API 23 en ViewGroups extendiendo FrameLayout .

  • Lista de permisos de Android permisos normales y permisos peligrosos en API 23?
  • Recoge la versión de Android en el navegador por Javascript
  • Apache HTTP Client Removal de API23, ¿tendrá un efecto en Volley?
  • Cómo detectar compatibilidad de emoji en Android por código
  • Android Studio De repente comenzó a mostrar incapaz de resolver com.android.support ... 25.0.0 mensajes de error y todos mis archivos java son erróneos ahora?
  • ¿Existe desventaja en el uso de la Biblioteca de soporte de Android?
  • Problema 189041: setForeground () incorrectamente marcado como requerir API 23 (NewApi) para ViewGroups extender FrameLayout

    Si no está extendiendo FrameLayout , la documentación es incorrecta y la API 23 es realmente necesaria.

    Problema 186273: View.setForeground Nivel de API incorrecto

    Pregunta actualizada

    Marcado como duplicado de No se puede usar el método setForeground en ImageView by Commonsware y respondió por él:

    Eso es un error de documentación. SetForeground () existe en FrameLayout desde el nivel 1 de la API; Es sólo en Ver como de API Nivel 23.

    En mi caso el error de la documentación no es detectado por la inspección en el tenedor pero lo hace en un proyecto de integración, no lo entiendo, de todos modos, esto responde a mi pregunta inicial.

    Pero no es el mismo caso, este código ya está extendiendo un Framelayout y usando este método, no es un ImageView , por lo que supongo que el método fue eliminado en la API 23. No aparece en la referencia ahora, ¿Es esto cierto? Una degradación funcional en este caso?

    Actualización: agrego un informe diff para FrameLayout que confirme esto:

    Introduzca aquí la descripción de la imagen

    Nueva pregunta

    Así que mi pregunta cambia a cómo usar el método en versiones anteriores, y, ¿por qué aparece el error de inspección de forma selectiva?

    Si agrego un yeso redundante, el mensaje de error desaparece:

     ((FrameLayout) layout).getForeground() 

    Pero realmente está accediendo al método View que no es compatible ahora.

    Así que supongo que la orientación de una API anterior quitaría el mensaje de error, pero me gustaría una solución para utilizar este método Framelayout o una pista para solucionar el problema en mi caso:

     ANDROID_COMPILE_SDK_VERSION=23 ANDROID_BUILD_TOOLS_VERSION=23.0.1 ANDROID_DEFAULT_MIN_SDK_VERSION=19 ANDROID_DEFAULT_TARGET_SDK_VERSION=23 

    Trabajar alrededor

    En resumen, como una solución, cambié el tipo de FrameLayout directamente para que las advertencias sobre la API y el casting se han ido y probé que funciona en Android 4.4.4 dispositivo y la depuración, pensé que se bloquearía, de todos modos sólo se utiliza en una animación y Lo solucionaré / lo reemplazaré en el futuro.

    Pregunta inicial

    Yo bifurcaba y personalizaba la muestra google android-topeka y android-studio muestra un error que no entiendo sobre el nivel de API necesario para usar el método getForeground() de la clase View en el paquete android.view :

    La llamada requiere el nivel 23 de API (el min actual es 19): android.view.View # getForeground

    La referencia marca el método como agregado en el nivel 1 de API y la documentación ( Control+Q ) muestra lo mismo:

    Doc que muestra el método API de nivel 1

    Sin embargo, el Calling new methods on older versions inspection muestra un error que requiere el nivel 23 de la API:

    Se requiere un mensaje de error sobre la API 23

    El proyecto agrega la siguiente implementación de Property para permitir beneficios de rendimiento cuando se establece el primer plano:

    Código relacionado sobre IntProperty

    He encontrado una pregunta similar , un error en ese caso, pero creo que esto no es un error debido a la horquilla original no muestra este mensaje de error.

    Voy a tratar de detectar la primera vez que aparece el mensaje, pero hice un montón de cambios por lo que cualquier pista sería apreciada, gracias.

  • Android Studio: No se pudo completar la ejecución de gradle. La causa está vacía
  • ¿Puedo ejecutar Android Studio (Android SDK emulator) en una máquina virtual Microsoft Hyper-v?
  • Cómo importar Android Studio Project de Git
  • Error: Error de ejecución para la tarea ': app: transformClassesWithDexForDebug' en android studio
  • ¿Cómo puedo hacer que WRAP_CONTENT funcione en un RecyclerView
  • Tecla Eliminar en Editor de traducciones
  • One Solution collect form web for “La llamada requiere el nivel 23 de API: error getForeground (), pero es un método FrameLayout ya que API 1”

    Finalmente encontré el problema relacionado, setForeground() incorrectamente marcado como requerir API 23 para ViewGroups extendiendo FrameLayout .

    Problema 189041: setForeground () incorrectamente marcado como requerir API 23 (NewApi) para ViewGroups extender FrameLayout

    Si no está extendiendo FrameLayout , la documentación es incorrecta y la API 23 es realmente necesaria.

    Problema 186273: View.setForeground Nivel de API incorrecto

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.