2017-04-16 28 views
0

首先讓我們明確一點,這是我嘗試完成的第一個Android項目,所以我對這一切仍然很陌生。 我一直堅持這個非常惱人的問題,即使刪除了很多東西后,我仍然無法編譯我的項目。在我的項目中,我添加了'System'命名空間以使用'Exception'關鍵字(用於測試數據庫連接)。在此之前,所有工作都很好,很好。但試圖編譯後,我得到了錯誤:Xamarin Android(Mac)持續出現錯誤:「無法加載System.Drawing」

/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets:錯誤:加載程序集時出現異常:System.IO .FileNotFoundException:無法加載程序集'System.Drawing,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'。也許它不適用於Android個人資料的Mono中? 文件名稱:'System.Drawing.dll'

所以我剛剛在頂部添加了'使用System.Drawing',但後來我讀到Xamarin Android不支持該功能。所以我再次刪除它,並試圖刪除我所做的任何嘗試停止獲取此異常。然後,即使我評論所有事情,這個錯誤也會永久停留。我可以寫'使用System.Drawing',而系統不會給這行提供一個錯誤,我認爲這很奇怪,因爲它沒有在參考中找到。我也沒有得到它,因爲我沒有畫任何東西,也沒有想到使用System.Drawing中的任何東西。任何時候我參考'系統'包我得到這個錯誤,我不能沒有,因爲一些android文件依賴它。現在我已經失去了幾個小時而沒有任何進展,基本上我在這條路的盡頭。

這裏的,因爲它是現在,縮小我的MainActivity.cs文件,這是我唯一.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); 

     } 
    } 
} 

這是我引用和包的圖片(在那裏有很多Xamarin包因爲那些是需要加載谷歌地圖):

enter image description here

這裏我的項目結構的另一張照片原樣,如果它可以幫助確定問題。

enter image description here

我試圖刪除我所有的包和清潔我的大/ Debug文件夾和重建的一切,但錯誤仍然繼續。

一切工作完美,現在我不能再建立它了。我寫了一次「使用系統」,得到這個錯誤,然後再也無法擺脫這個錯誤。

我真的不想重新啓動我的項目第二次,每小時得到未知的錯誤,所以任何幫助將不勝感激。

+1

您的希望是啓用診斷日誌記錄,然後檢查哪個引用導致錯誤的程序集。這很無聊,但可行。 –

+0

非常感謝,我是通過這個來追蹤問題的!你救了我! – Noob17

回答

3

由於使用了診斷日誌記錄,我發現這個問題。 結果'MySql.Data'包加載'System.Drawing',當然在Xamarin.Android中不支持。

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

感謝Lexi Li給出了我真正需要的一個提示!

相關問題