web-dev-qa-db-fra.com

AppCompatActivity.onCreate peut uniquement être appelé à partir du même groupe de bibliothèques.

Après la mise à niveau vers appcompat 25.1.0, j'ai commencé à obtenir des erreurs câblées.

Dans mon code:

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

Je reçois une erreur de peluche:

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

Comment prévenir un tel comportement?

90
pixel

Comme Felipe l’a déjà souligné dans son commentaire , il s’agit d’un bug dans la version préliminaire des outils.

Vous pouvez contourner ce problème pour le moment, jusqu'à ce que Google publie un correctif, en ajoutant ce qui suit dans le fichier build.gradle de votre module de projet:

Android {
  lintOptions {
    disable 'RestrictedApi'
  }
}

Notez que cela peut masquer les vraies erreurs dans votre projet car il supprime toutes les erreurs de ce type. La meilleure option consiste donc à rétrograder la version de Android Studio et les outils utilisés dans le projet.

82
Martin

Comme les réponses précédentes ont mis en évidence, c'est un bug. Je recommande de ne pas désactiver l'avertissement de peluches spécifique à l'ensemble du projet, mais uniquement pour cette méthode. Annotez votre méthode comme suit:

@SuppressLint("RestrictedApi")
@Override
public void setupDialog(Dialog dialog, int style) {
    super.setupDialog(dialog, style);
    //your code here
}
123
DimitrisCBR

Désactiver l'avertissement dans lintOptions ne semble pas une bonne option, il est préférable de supprimer l'inspection au niveau de l'instruction.

Ajoutez ce commentaire au dessus de la ligne de code qui donne l'avertissement:

//noinspection RestrictedApi
64
Killer