C# 用于Unity的Xamarin插件

C# 用于Unity的Xamarin插件,c#,android,plugins,unity3d,xamarin,C#,Android,Plugins,Unity3d,Xamarin,我想为Unity创建一个Xamarin Android插件。我可以通过简单的任务(生成随机数或类似的任务)来实现这一点,但当我尝试构建更复杂的dll文件并将其用于unity时,unity中出现了一些错误 ////This is the plugin that I have created in Xamarin using System; using Android.App; using Android.Content; using Android.Runtime; using Android.V

我想为Unity创建一个Xamarin Android插件。我可以通过简单的任务(生成随机数或类似的任务)来实现这一点,但当我尝试构建更复杂的dll文件并将其用于unity时,unity中出现了一些错误

////This is the plugin that I have created in Xamarin
using System;
using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;

namespace Plugin
{
    public class CallAction : Activity
    {
        public void Call()
        {
            var uri = Android.Net.Uri.Parse ("tel:1112223333");
            var intent = new Intent (Intent.ActionDial, uri);
            StartActivity (intent);
        }
    }
}
我就是这样用它来团结的

using UnityEngine;
using System.Collections;
using Plugin;


public class PluginTest : MonoBehaviour
{
    public void CallButton()
    {
        CallAction c = new CallAction ();
        c.Call ();
    }
}
这就是Unity给我的错误

Internal compiler error. See the console log for more information. output was:
Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065' or one of its dependencies.

File name: 'Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065'

  at (wrapper managed-to-native) System.Reflection.Assembly:InternalGetType (System.Reflection.Module,string,bool,bool)

  at System.Reflection.Assembly.GetType (System.String name, Boolean throwOnError, Boolean ignoreCase) [0x00000] in <filename unknown>:0 

  at System.Reflection.Assembly.GetType (System.String name) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.RootNamespace.GetTypeInAssembly (System.Reflection.Assembly assembly, System.String name) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.RootNamespace.LookupTypeReflection (Mono.CSharp.CompilerContext ctx, System.String name, Location loc, Boolean must_be_unique) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.GlobalRootNamespace.LookupTypeReflection (Mono.CSharp.CompilerContext ctx, System.String name, Location loc, Boolean must_be_unique) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.Namespace.LookupType (Mono.CSharp.CompilerContext ctx, System.String name, Location loc) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.Namespace.Lookup (Mono.CSharp.CompilerContext ctx, System.String name, Location loc) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.NamespaceEntry.Lookup (System.String name, Location loc, Boolean ignore_cs0104) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.NamespaceEntry.LookupNamespaceOrType (System.String name, Location loc, Boolean ignore_cs0104) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.DeclSpace.LookupNamespaceOrType (System.String name, Location loc, Boolean ignore_cs0104) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.DeclSpace.LookupNamespaceOrType (System.String name, Location loc, Boolean ignore_cs0104) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.MemberCore.LookupNamespaceOrType (System.String name, Location loc, Boolean ignore_cs0104) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.Method.LookupNamespaceOrType (System.String name, Location loc, Boolean ignore_cs0104) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.ResolveContext.LookupNamespaceOrType (System.String name, Location loc, Boolean ignore_cs0104) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.SimpleName.ResolveAsTypeStep (IMemberContext ec, Boolean silent) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.Expression.ResolveAsBaseTerminal (IMemberContext ec, Boolean silent) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.Expression.ResolveAsTypeTerminal (IMemberContext ec, Boolean silent) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.Expression.ResolveAsContextualType (IMemberContext rc, Boolean silent) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.LocalInfo.Resolve (Mono.CSharp.ResolveContext ec) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.Block.ResolveMeta (Mono.CSharp.BlockContext ec, Int32 offset) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.ToplevelBlock.ResolveMeta (Mono.CSharp.BlockContext ec, Mono.CSharp.ParametersCompiled ip) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.ToplevelBlock.Resolve (Mono.CSharp.FlowBranching parent, Mono.CSharp.BlockContext rc, Mono.CSharp.ParametersCompiled ip, IMethodData md) [0x00000] in <filename unknown>:0 
内部编译器错误。有关更多信息,请参阅控制台日志。产出为:
未处理的异常:System.IO.FileNotFoundException:无法加载文件或程序集“Mono.Android,Version=0.0.0,Culture=neutral,PublicKeyToken=84e04ff9cfb79065”或其依赖项之一。
文件名:“Mono.Android,版本=0.0.0.0,区域性=neutral,PublicKeyToken=84e04ff9cfb79065”
at(包装器管理为本机)System.Reflection.Assembly:InternalGetType(System.Reflection.Module,string,bool,bool)
在:0中的System.Reflection.Assembly.GetType(System.String名称、布尔throwOnError、布尔ignoreCase)[0x00000]处
在:0中的System.Reflection.Assembly.GetType(System.String名称)[0x00000]处
位于:0中的Mono.CSharp.RootNamespace.GetTypeInAssembly(System.Reflection.Assembly,System.String name)[0x00000]
在Mono.CSharp.RootNamespace.LookupTypeReflection(Mono.CSharp.CompilerContext ctx,System.String名称,位置loc,布尔值必须是唯一的)[0x00000]中:0
在Mono.CSharp.GlobalRootNamespace.LookupTypeReflection(Mono.CSharp.CompilerContext ctx,System.String名称,位置loc,布尔值必须是唯一的)[0x00000]中:0
在Mono.CSharp.Namespace.LookupType(Mono.CSharp.CompilerContext ctx,System.String name,Location loc)[0x00000]中:0
在Mono.CSharp.Namespace.Lookup(Mono.CSharp.CompilerContext ctx,System.String name,Location loc)[0x00000]中:0
在:0中的Mono.CSharp.NamespaceEntry.Lookup(System.String name,loc,Boolean ignore_cs0104)[0x00000]处
在Mono.CSharp.namespacentry.LookupNamespaceOrType(System.String名称,位置loc,Boolean ignore_cs0104)[0x00000]中:0
在Mono.CSharp.DeclSpace.LookupNamespaceOrType(System.String名称,位置loc,Boolean ignore_cs0104)[0x00000]中:0
在Mono.CSharp.DeclSpace.LookupNamespaceOrType(System.String名称,位置loc,Boolean ignore_cs0104)[0x00000]中:0
在:0中的Mono.CSharp.MemberCore.LookupNamespaceOrType(System.String名称、位置loc、Boolean ignore_cs0104)[0x00000]处
在:0中的Mono.CSharp.Method.LookupNamespaceOrType(System.String名称、位置loc、Boolean ignore_cs0104)[0x00000]处
在:0中的Mono.CSharp.ResolveContext.LookupNamespaceOrType(System.String名称,位置loc,Boolean ignore_cs0104)[0x00000]处
在:0中的Mono.CSharp.SimpleName.ResolveAsTypeStep(IMemberContext ec,布尔静默)[0x00000]处
在Mono.CSharp.Expression.ResolveAsBaseTerminal(IMemberContext ec,布尔静默)[0x00000]中:0
在Mono.CSharp.Expression.ResolveAsTypeTerminal(IMemberContext ec,布尔静默)[0x00000]中:0
在:0中的Mono.CSharp.Expression.ResolveAsContextUltype(IMemberContext rc,布尔静默)[0x00000]处
在:0中的Mono.CSharp.LocalInfo.Resolve(Mono.CSharp.ResolveContext)[0x00000]处
在Mono.CSharp.Block.ResolveMeta处(Mono.CSharp.BlockContext ec,Int32偏移量)[0x00000]in:0
在Mono.CSharp.ToplevelBlock.ResolveMeta(Mono.CSharp.BlockContext ec,Mono.CSharp.Parameters编译ip)[0x00000]中:0
在Mono.CSharp.ToplevelBlock.Resolve(Mono.CSharp.FlowBranching父级,Mono.CSharp.BlockContext rc,Mono.CSharp.Parameters编译ip,IMethodData md)[0x00000]中:0

甚至有可能做我想做的事吗?如果是这样,我做错了什么?谢谢你

有一件事:我只是建议:制作插件真的有必要吗?你想达到什么目标?世界上所有的游戏都是用Unity制作的,没有你知道的插件?一些功能,比如说直接从我的Unity应用程序呼叫某人,或者一个允许用户在不同的社交媒体上共享我的应用程序的共享系统,或者一个通知系统,比如祝酒等等。不管怎样,我想做的可能吗?谢谢你。@RaducuMihai,你做过这个吗?没有。我想不出一个解决办法。有一件事:我只是建议:制作插件真的有必要吗?你想达到什么目标?世界上所有的游戏都是用Unity制作的,没有你知道的插件?一些功能,比如说直接从我的Unity应用程序呼叫某人,或者一个允许用户在不同的社交媒体上共享我的应用程序的共享系统,或者一个通知系统,比如祝酒等等。不管怎样,我想做的可能吗?谢谢你。@RaducuMihai,你做过这个吗?没有。我想不出解决这个问题的办法。