2017-04-16 1 views
0

D'abord laisser préciser qu'il s'agit de mon premier projet Android que j'essaie de terminer, donc je suis encore très nouveau à tout cela. J'ai été coincé avec ce problème extrêmement ennuyeux où je ne peux plus compiler mon projet même après avoir enlevé beaucoup de choses. À un moment de mon projet, j'ai ajouté l'espace de noms 'System' pour utiliser le mot-clé 'Exception' (pour tester une connexion DB). Tout fonctionnait bien et bien avant ce point. Mais après avoir essayé de compiler je suis l'erreur:Xamarin Android (Mac) persistante erreur: "Impossible de charger System.Drawing"

/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets: Erreur: Exception lors de chargement des assemblages: System.IO .FileNotFoundException: Impossible de charger l'assembly 'System.Drawing, Version = 4.0.0.0, Culture = neutre, PublicKeyToken = b03f5f7f11d50a3a'. Peut-être qu'il n'existe pas dans le profil Mono pour Android? Nom du fichier: 'System.Drawing.dll'

Donc, je viens d'ajouter 'using System.Drawing' en haut, mais plus tard, j'ai lu que Xamarin Android ne supporte pas cela. Donc, je l'ai retiré à nouveau et j'ai essayé de supprimer tout ce que j'ai fait pour essayer d'arrêter d'obtenir cette exception. Ensuite, cette erreur est restée bloquée pour toujours, même si je commente tout. Je peux écrire 'en utilisant System.Drawing' sans que le système ne donne une erreur à cette ligne, ce que j'ai trouvé bizarre parce que c'est introuvable dans les références. Je ne comprends vraiment rien car je ne dessine rien et je ne pense pas utiliser quoi que ce soit de System.Drawing. Chaque fois que je fais référence au paquet 'System', j'obtiens cette erreur, je ne peux pas m'en passer car certains fichiers android en dépendent. J'ai maintenant perdu des heures sans progrès et je suis au bout du compte ici.

Voici mon fichier MainActivity.cs comme il est maintenant, rétréci vers le bas, il est mon seul fichier .cs:.

using Android.Graphics; 
using Android.App; 
using Android.Widget; 
using Android.OS; 
using Android.Gms.Maps; 
using Android.Gms.Maps.Model; 
using MySql.Data.MySqlClient; 
using System; 

namespace MapApp 
{ 
    [Activity(Label = "MapApp", MainLauncher = true, Icon = "@mipmap/icon")] 
    public class MainActivity : Activity, IOnMapReadyCallback 
    { 
     GoogleMap GMap; 

     /// database 

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

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

     private void SetUpMap() 
     { 
      if (GMap == null) 
      { 
       FragmentManager.FindFragmentById<MapFragment>(Resource.Id.googlemap).GetMapAsync(this); 
      } 
     } 

     public void OnMapReady(GoogleMap map) 
     { 
      GMap = map; 
      GMap.SetLatLngBoundsForCameraTarget(new LatLngBounds(
       new LatLng(51.873176, 4.393930), 
       new LatLng(51.994576, 4.598036))); 
      GMap.MoveCamera(CameraUpdateFactory.NewLatLngZoom(new LatLng(51.917879,4.481134),13)); 

      /*MarkerOptions markerOpt1 = new MarkerOptions(); 
      markerOpt1.SetPosition(new LatLng(51.917879, 4.481134)); 
      markerOpt1.SetTitle("Vimy Ridge"); 
      GMap.AddMarker(markerOpt1);*/ 

      CircleOptions dangerZone = new CircleOptions(); 
      dangerZone.InvokeCenter(new LatLng(51.917879, 4.481134)); 
      dangerZone.InvokeRadius(100); 
      dangerZone.InvokeFillColor(0x7F00FF00); 
      dangerZone.InvokeStrokeWidth(0); 

      GMap.AddCircle(dangerZone); 

     } 
    } 
} 

Voici une photo de mes références et forfaits (beaucoup de paquets Xamarin là-bas parce que ceux ont été nécessaires pour charger Google Maps):

enter image description here

Voici une autre photo de ma structure du projet tel qu'il est, si elle peut aider à identifier le problème.

enter image description here

J'ai essayé de supprimer tous mes paquets et nettoyer mon Big/Debug et tout reconstruire mais l'erreur procède encore.

Tout a fonctionné parfaitement et maintenant je ne peux plus le construire. J'ai écrit "using System" une fois, j'ai eu cette erreur, et je n'ai plus jamais pu me débarrasser de cette erreur.

Je ne veux vraiment pas redémarrer mon projet pour la deuxième fois, après avoir obtenu des erreurs inconnues toutes les heures, donc toute aide serait grandement appréciée.

+1

Vous espérez activer la journalisation des diagnostics, puis vérifier quelle référence mène au mauvais assemblage. C'est ennuyeux, mais faisable. –

+0

Merci beaucoup, je devais localiser le problème via ça! Tu m'as sauvé! – Noob17

Répondre

3

J'ai trouvé le problème grâce à l'utilisation de la journalisation des diagnostics. Il s'avère que le paquet 'MySql.Data' charge 'System.Drawing' ce qui n'est bien sûr pas supporté par Xamarin.Android.

Dependency System.Drawing, Version=4.0.0.0, Culture=neutral, 
Required by MySql.Data, Version=6.9.9.0, Culture=neutral 

Merci à Lexi Li pour donner le seul conseil dont j'avais besoin!