Xamarin Android 构建失败“outputAssembly 的值无效”
Posted
技术标签:
【中文标题】Xamarin Android 构建失败“outputAssembly 的值无效”【英文标题】:Xamarin Android Build Failed "Invalid value for outputAssembly" 【发布时间】:2018-05-26 00:16:19 【问题描述】:几天前,我的解决方案似乎运行良好,但今天突然间,android 项目无法构建。 我没有收到错误,但确实得到以下输出:
1>Build started.
1>Project "MyApp.Android.csproj" (Install target(s)):
1>Project "MyApp.csproj" (GetTargetFrameworks target(s)):
1>Done building project "MyApp.csproj".
1>Project "MyApp.csproj" (GetTargetFrameworks target(s)):
1>Done building project "MyApp.csproj".
1>Project "MyApp.csproj" (GetTargetPath target(s)):
1>Done building project "MyApp.csproj".
1>Project "MyApp.csproj" (GetTargetPath target(s)):
1>Done building project "MyApp.csproj".
1>Project "MyApp.csproj" (GetNativeManifest target(s)):
1>Done building project "MyApp.csproj".
1>Project "MyApp.csproj" (GetNativeManifest target(s)):
1>Done building project "MyApp.csproj".
1>"obj\Debug\MyApp.Android.dll;obj\Debug\MyApp.Android.dll" is an invalid value for the "OutputAssembly" parameter of the "Csc" task. Multiple items cannot be passed into a parameter of type "Microsoft.Build.Framework.ITaskItem".
1>Done building project "MyApp.Android.csproj" -- FAILED.
1>Build FAILED.
我还尝试删除 bin en obj 文件夹,清理并重建解决方案并删除 MyApp.Android.dll。 但是在重建之后,完全相同的事情再次发生。
我确实收到以下警告:
Severity Code Description Project File Line Suppression State
Warning IDE0006 Error encountered while loading the project. Some project features, such as full solution analysis for the failed project and projects that depend on it, have been disabled. BarApp.Android 1 Active
【问题讨论】:
在您的项目集中链接到Sdk Assemblies Only
并检查armeabi - v7
和x86
的支持架构。
谢谢!我已经在你的答案中找到了所有内容,但我也检查了“Armeabi”(没有 -v7),所以我取消选中它,现在它可以工作了(:如果你将它作为答案发布,我会接受它。
【参考方案1】:
您必须将您的项目设置为Linking to Sdk Assemblies Only
,并将支持架构设置为armeabi - v7
和x86
。
尝试clean
和rebuild
项目后
它就像魅力一样。
【讨论】:
我们在哪里设置支持架构? 您能解释一下原因吗?在将我的Portable class library
迁移到 .net standard
并将 .net 标准包更新到 2.0.2 后,这个问题发生在我身上。这些架构是什么?
从 PCL 升级到 .Net Standard 2.0 后,我也开始得到这个。我们在项目中关闭了链接(过去有问题)。我开始遇到这个问题,我必须重新启动 Visual Studio,然后我通常可以走几个小时而不会再次遇到它。这么频繁地重启真的很烦人。
@pettys我也遇到了同样的问题,一些清理和重建有帮助:/
@Ayudh 单击“属性”/“Android 选项”选项卡上的“高级”按钮。【参考方案2】:
如果您使用可移植类库 (PCL) 方法在 Android 和 ios 之间组织代码,您可以通过右键单击 Android 项目并在 Visual Studio 中选择菜单选项“卸载项目”来卸载它。然后重新编译PCL项目,再次重新加载Android项目(右键->“重新加载项目”)并重新构建解决方案。这次它应该没有错误。现在尝试在 Android 模拟器上再次运行该应用程序。
您可能还必须重新启动模拟器并从模拟器/设备上卸载应用程序,然后才能再次成功运行它。
【讨论】:
【参考方案3】:在文件资源管理器中打开项目,从解决方案中删除bin和obj文件,进入解决方案。
在 droid 项目中右击转到选项
选择 Android 选项将您的项目链接设置为仅 SDK 程序集,然后单击高级设置支持架构为 armeabi-v7 和 x86。
最后清理并重建项目。
【讨论】:
【参考方案4】:我不得不清理项目,删除 bin 文件夹(只是为了确定),然后构建失败,真正的原因是:引用不正确。
有人复制了项目 dll 而不是链接到项目。
更正了参考,一切都很好。
【讨论】:
以上是关于Xamarin Android 构建失败“outputAssembly 的值无效”的主要内容,如果未能解决你的问题,请参考以下文章
Xamarin.Android Java绑定库运行时失败访问本机库
Xamarin Android LinkAssemblies 任务失败