web-dev-qa-db-fra.com

Aucun fichier Java trouvé qui étend CordovaActivity. quand utiliser "cordova build"

Mon ordinateur fonctionne sous Windows 8 64 bits, j’installe cordova et la plate-forme Android pour mon projet. J'ai créé mon projet en saisissant cordova create hello com.example.hello HelloWorld et cordova platform add Android, mais lorsque j’exécute cordova build, il affiche une erreur en dessous:

[Error: No Java files found which extend CordovaActivity.]

j'ai cherché sur le Web, mais je n'ai pas encore trouvé la solution. Quel est le problème?

12
Jack Zhang

J'ai eu la même erreur lorsque j'ai cloné mon référentiel à partir d'un autre projet. Je l'ai résolu en supprimant les plates-formes et en l'ajoutant à nouveau.

17
Sundar Ram

Dans Eclipse ou un autre éditeur, accédez au fichier source .Java sous plates-formes/Android/src/et assurez-vous que la classe étend CordovaActivity (elle a peut-être déjà étendu DroidGap à la place).

14
hyperizer

Juste sur un sujet connexe concernant PhoneGap 3.2 provoquant la même erreur, il est probable que vous ayez gâché l'application lors de la configuration et de la tentative d'exécution

Ce qui a fonctionné pour moi a été de supprimer les fichiers générés de la plate-forme Android et d’exécuter à nouveau la commande RUN. Alors, à partir du répertoire de base de votre projet PhoneGap, procédez comme suit:

cd platforms
Sudo rm -rf Android
cd ..
Sudo phonegap local run Android --emulator

Je travaille sur un Macbook Pro avec OSX version 10.9

J'espère que cela aide quelqu'un!

5
Cornelius Parkin

Tout ce que vous avez à faire est de supprimer la plateforme Cordova Platform rm Android et d'ajouter de nouveau la plateforme en tapant Cordova Platform add Android, et l'erreur disparaît

3
Christian Olatomiwa

Le fichier .Java avec l'activité d'extension de CordovaActivity doit être exactement dans com.example.app - comme spécifié dans la balise id = "com.example.app" de config.xml.

Ceci a changé dans 3.2.0 - a déposé un rapport de bogue: https://issues.Apache.org/jira/browse/CB-5515

2
Michael Schmidt

J'avais le même problème (bien que sous Ubuntu) et j'essayais la réponse de Hyperizer, qui aurait dû fonctionner ... mais sans effet pour moi. Remarque: j'ai eu l'erreur après la mise à niveau de cordova (de 3.0.9 à 3.4.0-0.1.3) et mes dossiers de plates-formes générés n'étaient donc pas synchronisés avec la dernière version de cordova.

J'ai trouvé la chose la plus propre à faire (et cela a fonctionné pour moi) est de supprimer votre répertoire/plates-formes/Android (selon la réponse de cornelius ... mais mon objectif est cordova), puis de recréer avec cordova pour que vous sachiez que tout est en place à ce jour et en ligne avec la version actuelle de Cordova.

cd platforms
rm -rf Android
cd ..
cordova platform add Android

Votre dossier Android est recréé et essayez à présent de construire et d'exécuter à nouveau.

cordova build Android
cordova emulate Android

L'inconvénient de souffler et de recréer le dossier de la plateforme Android est qu'il vous faudra réappliquer toutes les personnalisations que vous auriez apportées à la source Android ... (je n'avais pas eu à le remercier), mais vous devriez alors pouvoir tirer ceci de votre git etc. Au moins maintenant vous travaillez sur une construction propre et ordonnée mise à jour.

2
JDawgg

Ce problème est dû à l'absence du fichier MainActivity.Java. En général, il réside sur le chemin ci-dessous.

[Nom de l'application]\plateformes\Android\src\com

Ici, il devrait avoir le nom du dossier basé sur l’espace de noms que vous avez donné. Supposons que j'ai donné un espace de noms comme com.passion.oilfreerecipes Il devrait donc y avoir un dossier passion

Et à l'intérieur de leur, vous devriez avoir MainActivity.Java.

Cela disparaît dans mon application lorsque je nettoie la solution. Vous pouvez copier et coller à partir d'un autre projet et modifier le fichier mainActivity.Java en fonction de vos besoins.

1
Satya

Je suis tombé sur une "solution" pour ceux qui utilisent un Framework qui "cache" l'extension de CordovaActivity, c'est-à-dire que MainActivity ressemble à ceci:

public class MainActivity extends GDCordovaActivity {...}

GDCordovaActivy est votre activité-cadre qui étend CordovaActivity.

Ajoutez simplement un fichier "foo.Java" au projet contenant uniquement un commentaire comme celui-ci:

/** extends CordovaActivity */

Dans la mesure où Cordova Framework analyse le fichier et ne reconnaît pas les commentaires, vous pourrez appeler cordova Android prepare etc. sans erreur.

1
Bouncing Bit

Cela peut arriver si votre id et Android-packageName dans config.xml ne correspondent pas.

Android-packageName="com.example.app" id="com.example.app"

0
TechnoTim

Cette erreur s'est produite lorsque j'ai changé le nom de l'ID de package à partir du fichier config.xml, tel que io.cordova..etc, en un autre nom de package. Je l'ai donc résolue en supprimant la plate-forme d'Android. et exécuter la commande Android plate-forme cordova ajouter Android

0
hiDemo Studio

J'ai résolu ce problème en réinitialisant l'environnement Java.

    $ Sudo update-alternatives --config Java

choisissez le numéro pour /usr/lib/jvm/Java-1.8.0-openjdk-AMD64.

Appuyez sur enter pour conserver le choix actuel [*] ou tapez le numéro de sélection:

Pour choisir un compilateur javac par défaut, exécutez la commande suivante.

    $ Sudo update-alternatives --config javac

Si vous préférez utiliser une interface graphique à la place de la ligne de commande, vous pouvez exécuter des alternatives et définir les versions par défaut du logiciel à l'aide de la boîte de dialogue suivante.

    $ Sudo galternatives
0
Atif Hussain

J'avais trop de personnalisations et je ne voulais pas recréer les plateformes.

Résolu ceci en remplaçant le widget id dans defaults.xml par le nouveau nom du package (j'ai changé le io.hellocordova par défaut dans ma propre structure de package)

0
Anthony De Smet