2011-08-17 5 views
0

J'ai installé MonoDroid (et tous les prérequis) et essayé d'exécuter le projet Android par défaut dans VS2010. Voici le code:L'application par défaut de Monodroid dans VS2010 ne fonctionne pas avec l'erreur "activity not found"

[Activity(Label = "MonoAndroidApplication1", MainLauncher = true, Icon = "@drawable/icon")] 
public class Activity1 : Activity 
{ 
    int count = 1; 

    protected override void OnCreate(Bundle bundle) 
    { 
     base.OnCreate(bundle); 

     // Set our view from the "main" layout resource 
     SetContentView(Resource.Layout.Main); 

     // Get our button from the layout resource, 
     // and attach an event to it 
     Button button = FindViewById<Button>(Resource.Id.MyButton); 

     button.Click += delegate { button.Text = string.Format("{0} clicks!", count++); }; 
    } 
} 

Lors de l'exécution de l'application d'une erreur est renvoyée:

a tenté de lancer l'activité 'MonoAndroidApplication1.MonoAndroidApplication1/monoandroidapplication1.Activity1', mais l'appareil n'a pas pu le trouver. Une cause fréquente de ceci est l'ajout manuel d'un fichier à votre AndroidManifest.xml dont le nom ne correspond pas à votre classe d'activité.

Vous pouvez utiliser les [activité] attribut à la place: http://monodroid.net/Tutorials/Working_with_AndroidManifest.xml

J'ai installé le SDK Android dans C: \ Android_SDK et définir en conséquence l'emplacement dans Outils-> Options-> Mono pour Android.

Mono semble également être correctement installé sur l'émulateur et c'est le dernier bit du journal de la BAD:

-- Process Finished [5000] -- 
-- Starting Process - 17/08/2011 12:01:03 -- 
Executable: C:\Android_SDK\platform-tools\adb.exe 
Arguments: -s emulator-5554 install "C:\Users\***************\documents\visual studio 2010\Projects\MonoAndroidApplication1\MonoAndroidApplication1\bin\Debug\MonoAndroidApplication1.MonoAndroidApplication1-Signed.apk" 
Appending Java path: C:\Program Files\Java\jdk1.7.0\bin 
[STDOUT] pkg: /data/local/tmp/MonoAndroidApplication1.MonoAndroidApplication1-Signed.apk 
[STDOUT] 
[STDOUT] Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES] 
[STDOUT] 
[STDERR] 696 KB/s (139717 bytes in 0.196s) 
-- Starting Process - 17/08/2011 12:01:05 -- 
Executable: C:\Android_SDK\platform-tools\adb.exe 
Arguments: start-server 
Appending Java path: C:\Program Files\Java\jdk1.7.0\bin 
[STDOUT] 
[STDERR] 
-- Process Finished [5000] -- 
-- Starting Process - 17/08/2011 12:01:05 -- 
Executable: C:\Android_SDK\platform-tools\adb.exe 
Arguments: -s emulator-5554 shell am start -a android.intent.action.MAIN -n MonoAndroidApplication1.MonoAndroidApplication1/monoandroidapplication1.Activity1 
Appending Java path: C:\Program Files\Java\jdk1.7.0\bin 
[STDOUT] Starting: Intent { act=android.intent.action.MAIN cmp=MonoAndroidApplication1.MonoAndroidApplication1/monoandroidapplication1.Activity1 } 
[STDOUT] 
[STDOUT] Error type 3 
[STDOUT] 
[STDOUT] Error: Activity class{MonoAndroidApplication1.MonoAndroidApplication1/monoandroidapplication1.Activity1} does not exist. 
[STDOUT] 

Ce poste Monodroid raises error est sur la même erreur, mais réinstallant Mono sur l'émulateur ne semble pas travailler pour moi.

Répondre

1

Mono pour Android n'est pas compatible avec Java 7. Désinstallez Java 7, installez Java 6 et réessayez.

+0

Peut-être que monodroid affiche une erreur lorsqu'il rencontre Java7 jusqu'à ce que les problèmes soient résolus. – CodesInChaos

+0

Merci @jpobst! Devrait avoir accordé plus d'attention au guide d'installation (http://android.xamarin.com/Installation/Visual_Studio). Btw, parce que les versions récentes de la pause Android SDK s'il y a des espaces dans l'emplacement d'installation, j'ai également dû copier le contenu de C: \ Program Files (x86) \ MSBuild \ Novell dans un dossier C: \ Android \ Novell et changer C: \ Program Files (x86) \ MSBuild \ Novell \ Novell.MonoDroid.Common.targets en conséquence (tâche ResolveSdks, définissez MonoAndroidFrameworkPath sur une propriété avec Value = "C: \ Android \ Novell"). – Strillo

+0

@CodeInChaos Oui, j'ai fait ce changement plus tôt aujourd'hui, donc vous obtenez un message d'erreur informatif si Java 6 est introuvable. :) – jpobst