web-dev-qa-db-fra.com

Impossible de trouver la classe XXX référencée à partir de la méthode XXX. <YYY>

Je travaille sur un projet libGDX et j'ai une classe appelée CheerVArachnids qui a une autre classe en ligne qui est un écouteur d'événements. Lorsque je lance ce projet sur le bureau, cela fonctionne très bien. MAIS quand je lance sur mon Android, il ne peut pas trouver cette classe en ligne et j'obtiens l'erreur suivante:

Could not find class 'com.bbj.cva.CheerVArachnids$PlaceUnitListener', referenced from method com.bbj.cva.CheerVArachnids.<init>

Voici les parties importantes de ma classe:

package com.bbj.cva;

public class CheerVArachnids implements ApplicationListener {

    class PlaceUnitListener implements EventSubscriber<PlaceUnitEvent> {

        @Override
        public void onEvent(PlaceUnitEvent event) 
        {   
            //
        }
    }

    public CheerVArachnids() {

        EventBus.subscribe(PlaceUnitEvent.class, new PlaceUnitListener());
        EventBus.subscribe(RemoveScreenObjectEvent.class,
                new RemoveScreenObjectListener());
    }
}

Des idées pourquoi sur Android, au moment de l'exécution, il ne trouve pas cette classe en ligne?

30
b-ryce

Depuis certaines versions ADT, vous devez également définir les bibliothèques/projets à exporter.

Project-Propiertes -> Java Build Path -> Order and Export -> Check your Sources and other Libraries you are using.

Faites ces paramètres d'exportation pour votre projet principal et Android.

Ensuite, cela devrait bien fonctionner sur Android.

46
CodeNoob

Dans mon cas, tout a bien fonctionné jusqu'à ce que j'installe les nouvelles mises à jour pour le SDK et Eclipse.

J'ai reçu une erreur: "Impossible de trouver la classe ..."

J'ai trouvé une solution dans un autre site stackoverflow.

J'ai un problème similaire lors de l'utilisation d'un pot externe (dans mon cas openCSV). La raison pour laquelle j'ai eu un problème était due à un changement d'ADT 17 (ou supérieur). Ce que je devais faire pour résoudre le problème était dans Eclipse allez dans Propriétés -> Java chemin de génération -> Ordre et exportation. Marquez mon pot. Déplacez le pot en haut de la liste. La solution était trouvé dans le page suivante qui fait référence à un très bon article.

12
syp_dino

Vous devez d'abord: importer XXX (classe) .Java, si vous avez ajouté un fichier jar de bibliothèque externe, importez-les dans le dossier LIB. Après cela: Cliquez avec le bouton droit sur votre projet -> Propriétés -> Java Build Path -> Order and Export (tab) -> sélectionnez All -> appuyez sur OK -> Clean your Project.

J'espère que cela résoudra ce problème

0
user3468848