代码之家  ›  专栏  ›  技术社区  ›  Gold.strike

xamarin.android:package xx与monoandroid81不兼容(monoandroid,version=v8.1)

  •  0
  • Gold.strike  · 技术社区  · 8 年前

    我遇到一个陌生人 xamarin.android版 项目 Windows上的Visual Studio .

    我创造了一个新的 Android空白项目 ,我尝试安装 Nuget软件包“AFORGE” (数学库),但我收到以下错误消息:

    2.2.5版本的包与Monoandroid81不兼容 (MonoAndroid,版本=V8.1)。

    在重新启动了Visual Studio和计算机之后,我已经尝试重新创建几个项目,但问题仍然存在。

    但是,如果我在 雨衣 ,通过 Visual Studio for Mac版 ,我没有遇到同样的问题:包安装得很好。

    另外,我可以在package.config文件中看到,包il与 monodroid81 以下内容:

    <?xml version="1.0" encoding="utf-8"?>
    <packages>
        <package id="AForge" version="2.2.5" targetFramework="monoandroid81" />
    </packages>
    

    你对这个问题有什么解释吗?

    更新:新版本

    您好,@leo liu msft,当我遇到一个新问题时,我会回来找您。dll副本在本地工作正常,但在AppCenter上出现错误:

    核心编译:
    /库/frameworks/mono.framework/versions/5.10.1/lib/mono/4.5/csc.exe /noconfig/nowarn:17011702/nostdlib+/errorreport:prompt/warn:4 /定义:调试;跟踪; Xamarin_安卓_v1_0 (二) 移动 (二) 安卓 (二) 安卓1 (二) 安卓2 (二) 安卓3 (二) 安卓4 (二) 安卓5 (二) 安卓6 (二) 安卓7 (二) 安卓8 (二) 安卓9 (二) 安卓10 (二) 安卓11 (二) 安卓12 (二) 安卓13 (二) 安卓14 (二) 安卓15 (二) 安卓16 (二) 安卓17 (二) 安卓18 (二) 安卓19 (二) 安卓-20 (二) 安卓嚯21 (二) 安卓-22 (二) 安卓-23 (二) 安卓24 (二) 安卓-25 (二) 安卓 (二) 安卓系统 /参考:/library/frameworks/mono.framework/external/xbuild-frameworks/monoandroid/v1.0/java.interop.dll /参考:/users/vsts/.nuget/packages/microsoft.appcenter.analytics/1.7.0/lib/monoandroid403/microsoft.appcenter.analytics.android.bindings.dll /参考:/users/vsts/.nuget/packages/microsoft.appcenter.analytics/1.7.0/lib/monoandroid403/microsoft.appcenter.analytics.dll /参考:/users/vsts/.nuget/packages/… services/audioservice.cs(8,7):错误cs0246:类型或命名空间 找不到名称“aforge”(是否缺少using指令或 程序集引用?) [/users/vsts/agent/2.136.1/work/1/s/xxxapp/xxxapp.csproj]完成 建筑工程 “/users/vsts/agent/2.136.1/work/1/s/xxxapp/xxxapp.csproj” (PackageForAndroid目标))--失败。

    所以我尝试了你的建议,但是当我尝试保存包时,我得到了一个错误:

    本地文件头已损坏'

    你还有别的建议吗?

    1 回复  |  直到 8 年前
        1
  •  3
  •   Leo Liu    8 年前

    你对这个问题有什么解释吗?

    你可以得到 公文 here 以下内容:

    描述:使用PackageReference时,程序集位于 忽略没有目标框架特定子文件夹的lib文件夹。 nuget查找与目标框架名字对象匹配的子文件夹 (tfm)对应于项目的目标框架并安装 将程序集匹配到项目中。

    在这种情况下,Nuget将考虑将此包安装到.NET框架中,该框架与MonoaAndroid81不兼容。然后您将看到错误“2.2.5版的软件包与Monoandroid81不兼容”。

    要解决此问题,最好的方法是与aforge nuget包的作者联系以更新此包,或者您也可以 直接将引用dll文件添加到项目中 .

    此外,如果您仍想使用Nuget to Manager此软件包,我将为您提供解决此问题的解决方案:

    1. 从下载此Nuget包 nuget.org .

    2. 复制下载包,重命名为 .zip ,就像 aforge.2.2.5 - Copy.nupkg.zip ,然后解压缩。

    3. 打开包裹 aforge.2.2.5.nupkg 使用Nuget Package Explorer(从Microsoft Store获取),添加新文件夹 MonoAndroid81 在lib节点下,从copy文件夹添加exists file aforge.dll和aforge.xml。 格式2.2.5-copy.nupkg.zip ,保存此nuget包。

    4. 将这个新的create nuget包添加到nuget本地feed,然后将这个nuget包添加到项目中。不要忘记删除 C:\Users\<UserName>\.nuget\packages\aforge 在添加包之前。

    希望这有帮助。