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 .

  • Apache HTTP Client Removal de API23, ¿tendrá un efecto en Volley?
  • 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?
  • Cómo detectar compatibilidad de emoji en Android por código
  • Recuperación de la versión de la API de Android mediante programación
  • Lista de permisos de Android permisos normales y permisos peligrosos en API 23?
  • Recoge la versión de Android en el navegador por Javascript
  • 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.

  • Uso de Android L Diseño de materiales en KitKat
  • La ejecución instantánea no funciona debido a "proceso múltiple"
  • Android Studio simple Unidad de prueba no funciona
  • No se puede cargar Android Device Monitor
  • Android studio - ¿debería estar todo el directorio .idea en git ignore?
  • La importación automática no funciona para las clases de Android en el estudio de Android
  • 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.