AppCompatActivity.onCreate solo se puede llamar desde el mismo grupo de bibliotecas


Después de actualizar a appcompat 25.1.0 He comenzado a recibir errores cableados.

En mi código:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

Recibo un error de pelusa:

AppCompatActivity.onCreate can only be called from within the same library group (groupId=com.android.support)

¿Cómo prevenir tal comportamiento?

Author: cricket_007, 2016-12-14

3 answers

Como ya señaló Felipe en su comentario este es un error en la versión previa al lanzamiento de las herramientas.

Puede solucionarlo por ahora, hasta que Google publique una corrección, agregando lo siguiente a la compilación del módulo de su proyecto.archivo gradle:

android {
  lintOptions {
    disable 'RestrictedApi'
  }
}

Vale la pena señalar que esto puede ocultar errores verdaderos en su proyecto, ya que suprime todos los errores de ese tipo, por lo que la mejor opción sería degradar la versión de Android Studio y las herramientas utilizadas en el proyecto.

 71
Author: Martin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:10:42

Como las respuestas anteriores resaltaron, es un error. Recomiendo no deshabilitar la advertencia de pelusa específica en todo el proyecto, sino solo para ese método. Anote su método de la siguiente manera:

@SuppressLint("RestrictedApi")
@Override
public void setupDialog(Dialog dialog, int style) {
    super.setupDialog(dialog, style);
    //your code here
}
 89
Author: Cbr,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-07-05 12:55:51

Deshabilitar la advertencia en lintOptions no parece una buena opción, es mejor suprimir la inspección a nivel de instrucción.

Añadir este comentario encima de la línea de código que da la advertencia:

//noinspection RestrictedApi
 60
Author: Killer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-04 20:39:20