2017-08-09 5 views
-3

Je ne peux pas obtenir le contexte de mon activité pour une raison quelconque. Note - Cela fonctionnait avant mais maintenant Android Studio affiche une erreur mais n'arrête pas mon application de compilation et d'exécution comme prévu. J'ai ajouté mon code plus bas mais finalement je pense que le problème est ailleurs parce que si j'essaye d'obtenir le contexte de l'activité dans une nouvelle activité vide, j'obtiens une erreur.Erreur lors de la tentative d'obtention du contexte d'activité

public class TestActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_test); 
     Context context = this; // Error here 
    } 
} 

L'erreur est:

Incompatible types. 
Required: android.content.Context 
Found: com.example.android.spanish.TestActivity 

Cette erreur ne se produit que pour ce projet alors voici un lien vers les project on Github. Mes recherches une réponse ont donné aucun résultat positif. En fait, je ne trouve rien sur le problème exact auquel je suis confronté. Ce que j'ai essayé de résoudre ce problème:

  1. this au lieu de MainActivity.this - même erreur que ci-dessus
  2. getApplicationContext() - ne peut pas résoudre l'erreur de méthode
  3. getActivity().getApplicationContext() - même erreur que # 2
  4. Clean & Reconstruire le projet/Projet de synchronisation avec fichiers Gradle
  5. Redémarrage d'Android Studio
  6. Android Studio ver Sions 2.3.3 & 3.0 - même numéro

Je suis nouveau sur le développement Android, donc si vous avez une solution pour moi, s'il vous plaît le formuler aussi simplement que possible. Merci d'avance. Voici mon code - je reçois l'erreur où il est dit MainActivity.this:

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     // Find the View that shows the Numbers category 
     TextView numbers = (TextView) findViewById(R.id.numbers); 

     // If View is present, set a click listener on that View 
     if(numbers != null) { 
      numbers.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        Intent numbersIntent = new Intent(MainActivity.this, NumbersActivity.class); 
        startActivity(numbersIntent); 
       } 
      }); 
     } 
    } 
} 
+0

Je ne vois rien de mal dans votre code ... et je n'ai pas baissé – bharath

+1

Il n'y a pas de 'TestActivity' dans votre code, ni de contexte Context = this'? –

+0

Désolé pour la confusion. TestActivity n'était qu'un bref test pour voir si le contexte fonctionnerait sans aucun de mes autres codes. –

Répondre

0

J'ai trouvé une solution et qui devait ajouter google() au fichier build.gradle de mon projet comme ceci:

allprojects { 
    repositories { 
     jcenter() 
     google() 
    } 
} 

J'ai aussi supprimé le projet et cloné à nouveau afin qu'il puisse construire à partir de zéro. Je ne sais pas si cela a aidé ou non.