J'ai suivi le tutoriel de Phonegap depuis le site officiel Phonegap.com (initiation à Android).
J'ai créé un projet en suivant toutes les étapes.
Maintenant, je ne comprends pas où est le problème. Il montre l'erreur ci-dessous, comme indiqué dans la capture d'écran
Voici mon fichier HTML
<!DOCTYPE html>
<html>
<head>
<title>Notification Example</title>
<script type="text/javascript" charset="utf-8" src="cordova-2.0.0.js"></script>
<script type="text/javascript" charset="utf-8">
// Wait for Cordova to load
//
document.addEventListener("deviceready", onDeviceReady, false);
// Cordova is ready
//
function onDeviceReady() {
// Empty
}
// Show a custom alert
//
function showAlert() {
navigator.notification.alert(
'You are the winner!', // message
'Game Over', // title
'Done' // buttonName
);
}
// Beep three times
//
function playBeep() {
navigator.notification.beep(3);
}
// Vibrate for 2 seconds
//
function vibrate() {
navigator.notification.vibrate(2000);
}
</script>
</head>
<body>
<p><a href="#" onclick="showAlert()">Show Alert</a></p>
<p><a href="#" onclick="playBeep()">Play Beep</a></p>
<p><a href="#" onclick="vibrate()">Vibrate</a></p>
</body>
</html>
Aucun conseil? Merci!
C'est config.xml
pas configs.xml
.
D'après les journaux que je vois, ce fichier manque dans votre répertoire apps res/xml
. Il est inclus dans la distribution à lib/Android/res/xml/config.xml
donc copiez ce fichier dans votre répertoire res/xml
et vous devriez être prêt.
Tout comme aharris88 dans sa réponse à cette question , le message d'erreur [CORDOVA] Error initilizing Cordova: Class not found
apparaissait lors de l'utilisation de Cordova 3.1.0 sur mon téléphone dev Android après la migration de Phonegap 3.0.
Tous bidouiller avec le fichier config.xml
dans le répertoire /platforms/Android/res/xml
n'a pas aidé. Sur la base de la réponse Stackoverflow mentionnée ci-dessus, j'ai essayé de "tout recommencer" en réinstallant le support de la plateforme Android:
cordova platform rm Android
cordova platform add Android
Après cette étape, cela a fonctionné à nouveau et j'ai pu cordova build Android && cordova run Android
sans autre problème.
J'ai eu cette erreur à cause d'un plugin que j'ai supprimé. J'ai ajouté
<plugin name="Device" value="org.Apache.cordova.Device"/>
dans le fichier config.xml à nouveau et cela a été corrigé.
Mon tu n'as pas plugin suivant:
<plugin name="Device" value="org.Apache.cordova.Device"/>
Vous devez mettre cela entre <plugins></plugins>
. Comme
<plugins>
<plugin name="Device" value="org.Apache.cordova.Device"/>
</plugins>
J'ai eu ce problème en utilisant phonegap 3.x et le problème s'est avéré que phonegap n'avait pas correctement installé les plugins, ou ils se sont simplement égarés en cours de route. Fondamentalement, lorsque vous installez les plugins et que vous les créez pour une plate-forme, il extrait les fichiers javascript de plugins/org.Apache.cordova.core.specific-plugin/www et les place dans plates-formes/Android/assets/www/plugins/org.Apache. cordova.core.specific-plugin/www, puis prend les fichiers Java (ou Objective C pour iOS) et les place dans plates-formes/Android/src/org/Apache/cordova/specificplugin
Et tout cela est spécifié par plugins/org.Apache.cordova.core.specific-plugin/plugin.xml. Si vous regardez dans un fichier plugins.xml, vous devriez voir quelque chose comme:
<source-file src="src/Android/NetworkManager.Java" target-dir="src/org/Apache/cordova/networkinformation" />
Cela vous indique donc que, dans les plates-formes/Android/src/org/Apache/cordova/networkinformation, il doit y avoir NetworkManager.Java. Et ce fichier peut être copié à partir de plugins/org.Apache.cordova.core.network-information/src/Android/NetworkManager.Java
Maintenant, tout cela est supposé se produire automatiquement sans avoir à toucher le dossier des plates-formes. Mais si cela ne fonctionne pas, vous pouvez le réparer en copiant manuellement les fichiers appropriés dans les dossiers appropriés.
Eh bien, l'erreur que j'ai trouvée est la suivante:
05-28 08: 19: 53.139: E/PluginManager (1478): ================================ =============================================== = 05-28 08: 19: 53.139: E/PluginManager (1478): ERREUR: le fichier config.xml est manquant. Ajoutez res/xml/config.xml à votre projet . 05-28 08: 19: 53.139: E/PluginManager (1478): https://git-wip-us.Apache.org/repos/asf?p=incubator-cordova-Android.git;a=blob; f = framework/res/xml/plugins.xml
mais j'ai trouvé /res/xml/config.xml dans mon projet
enfin, j'ai trouvé une erreur dans org.Apache.cordova.api.PluginManager:
public void loadPlugins() {
int id = this.ctx.getActivity().getResources().getIdentifier("config", "xml", this.ctx.getActivity().getClass().getPackage().getName());
...
devrait changer à:
public void loadPlugins() {
int id = this.ctx.getActivity().getResources().getIdentifier("config", "xml", this.ctx.getActivity().getPackageName());
...
vous pouvez en savoir plus sur la méthode "getIdentifier (Nom de la chaîne, String defType, String defPackage)" dans la documentation officielle
Vous pouvez résoudre ce problème lorsque vous utilisez la ligne de commande phonegap en procédant comme suit:
Supprimer les fusions/Android, plates-formes/Android, plugins/Android.json
exécuter phonegap local build Android
A eu le même problème avec la classe non trouvée. Un problème à examiner est de s'assurer que le fichier Android.json (ou ios.json) est mis à jour sur une version. Le mien était effectivement vide . En outre, supprimez et rajoutez les plugins comme mentionné dans d'autres publications . Enfin, ce qui a fonctionné pour moi était de m'assurer que les plugins étaient corrigés dans le fichier config.xml:
<feature name="Device">
<param name="Android-package" value="org.Apache.cordova.device.Device"/>
</feature>
<feature name="Camera">
<param name="Android-package" value="org.Apache.cordova.camera.CameraLauncher"/>
</feature>
<feature name="Notification">
<param name="Android-package" value="org.Apache.cordova.dialogs.Notification"/>
</feature>
Notez le double nom de 'device.Device' ainsi que la sous-classification des plugins 'camera' et 'dialogs'. Ceci n’est simplement pas correctement référencé par la documentation de Phonegap.
Donc, après avoir failli me tuer, j'ai découvert que j'utilisais cordova version 5.3.3 et cordova-Android version 5.0.0, mais je ne sais pas, il se peut qu'il n'y ait pas de compatibilité ou il peut y avoir un bug à cordova Android 4.1.1
cordova platform rm Android
cordova platform add [email protected]
et cela m'a sauvé
J'ai rencontré la même erreur: "Erreur lors de l'initialisation de Cordova: Classe non trouvée", lors de l'utilisation de Cordova avec Visual Studio 2015. Mais ce n'était pas la seule erreur, aucun de mes plugins ne semble pénétrer. J'ai essayé de tout. De cordova platform rm/add Android
x1000 fois, à la suppression et à l'ajout manuel des plugins, rien ne semble faire l'affaire.
Ensuite, j'ai changé mon cordova-cli dans le fichier taco.json de 5.3.3 à 5.4.0 et je l'ai exécuté sur mon appareil. Enfin, cela a réglé le problème pour moi. J'ai ensuite rétrogradé la version cordova à la version 5.3.3 (la version 5.4.0 n’est pas encore prise en charge par le pont adb). Essaye le!
[Résolu dans mon cas]
Premièrement, la sixième étape est fausse: il s'agit de config.xml et non de configs.xml
J'ai la même erreur malgré mon dossier config.xml dans le dossier res/xml ..__ C'est parce que vous devez installer manuellement des plugins pour les fonctions de base de l'API.
Via la console, accédez au dossier de votre projet et tapez:
phonegap local plugin add https://git-wip-us.Apache.org/repos/asf/cordova-plugin-device.git
Vous pouvez en savoir plus ici dans phonegap Doc (dernière section intitulée ajouter des fonctionnalités): Phonegap Doc
Je vous laisse aussi mon fichier config.xml
<?xml version='1.0' encoding='utf-8'?>
<widget id="io.cordova.helloCordova" version="2.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:gap="http://phonegap.com/ns/1.0">
<name short="Menu">Menu Digital</name>
<description>
Description
</description>
<author email="[email protected]" href="www.facebook.com/usr"> Name </author>
<feature name="App">
<param name="Android-package" value="org.Apache.cordova.App" />
</feature>
<feature name="http://api.phonegap.com/1.0/device" />
<feature name="http://api.phonegap.com/1.0/media" />
<feature name="Device">
<param name="Android-package" value="org.Apache.cordova.device.Device" />
</feature>
<content src="index.html" />
<feature name="App">
<param name="Android-package" value="org.Apache.cordova.App" />
</feature>
<access Origin="*" />
<preference name="useBrowserHistory" value="true" />
<preference name="exit-on-suspend" value="false" />
<preference name="fullscreen" value="true" />
<preference name="webviewbounce" value="true" />
</widget>
Cela pourrait arriver car votre plugin cordova a un chemin différent de ce que IONIC s'attend à trouver:
Vous devez corriger le fichier plugin.xml dans le dossier source de votre plugin:
<config-file target="app/src/main/res/xml/config.xml" parent="/*">
devrait être:
<config-file target="res/xml/config.xml" parent="/*">
Si vous essayez de rechercher cette erreur dans Android Studio Logcat, vous trouvez généralement quelque chose comme:
io.ionic.starter E/chromium: [ERROR:service_manager.cc(156)] Connection InterfaceProviderSpec prevented service: content_renderer from binding interface: blink::mojom::BudgetService exposed by: content_browser
2019-02-22 13:40:06.144 30230-30258/com.Android.webview:sandboxed_process0 E/chromium: [ERROR:BudgetService.cpp(167)] Unable to connect to the Mojo BudgetService.
Je reçois la même erreur, j'ai vérifié ma liste de plugins Cordova
en exécutant la commande "Cordova plugin list" dans le répertoire de mon projet Android et que le plug-in "org.Apache.cordova.device" est manquant.
Je l'ai mis à jour en utilisant "Cordova plugin add Cordova-plugin-device" et Erreur avait disparu.