【发布时间】:2017-04-16 02:36:31
【问题描述】:
首先要明确一点,这是我尝试完成的第一个 Android 项目,所以我对这一切还是很陌生。 我一直被这个非常烦人的问题所困扰,即使删除了很多东西,我也无法再编译我的项目。在我的项目中,我添加了“系统”命名空间以使用“异常”关键字(测试数据库连接)。在此之前,一切都运行良好。但是在尝试编译后我得到了错误:
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets:错误:加载程序集时出现异常:System.IO.FileNotFoundException:无法加载程序集“系统” .Drawing,版本=4.0.0.0,文化=中性,PublicKeyToken=b03f5f7f11d50a3a'。也许它在 Mono for Android 配置文件中不存在? 文件名:'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 包,因为它们是加载 Google 地图所需要的):
这是我的项目结构的另一张图片,如果它可能有助于识别问题。
我试图删除我的所有包并清理我的 Big/Debug 文件夹并重建所有内容,但错误仍然存在。
一切都运行良好,现在我无法再构建它了。我曾经写过“使用系统”,得到了这个错误,然后再也无法摆脱这个错误。
我真的不想第二次重新启动我的项目,因为每小时都会遇到未知错误,所以非常感谢任何帮助。
【问题讨论】:
-
您希望启用诊断日志记录,然后检查哪个引用导致错误的程序集。这很无聊,但可行。
-
非常感谢,我就是想通过那个来解决问题的!你救了我!
标签: c# mono xamarin.android