Visual Studio 2015 Xamarin冻结

时间:2017-02-23 13:21:18

标签: android xamarin visual-studio-2015

我在Visual Studio 2015上安装了一个带有Xamarin的Android应用程序,它经常冻结。

我每次都可以重现的唯一场景是在部署之后。应用程序部署在模拟器或设备上后,VS立即冻结。该应用程序工作正常,但VS冻结了几秒钟。它也会在其他情况下冻结。

VS没有显示"没有回应"无论我做什么,都会留言。看起来它正在做一些背景工作并且它并没有真正冻结,但我无法弄清问题是什么。

我从头开始重新创建项目,当我添加资源并安装了一些NuGet软件包(appcompat v7和firebase云消息传递)时,问题又开始发生了。

我猜它与VS有某种关系,没有识别某些布局文件中的某些属性,比如

shown in this image

1 - 有关冻结问题的任何帮助吗?

2 - 我能做些什么来识别这些属性?

3 - 我是否可以将resources.cs配置为仅在构建时重新生成?

更新

找到this,但对我没有用!

更新2

好的,现在我100%确定问题出在android资源的生成上。 aapt.exe是这段历史的反派,但我仍然不能让它每次都停止执行并冻结Visual Studio。是否有一些设置可以忽略布局文件上的xml错误或类似的东西?

2 个答案:

答案 0 :(得分:0)

我是创建你引用的bugzilla帖子的人。

您确定在正确的地方有<AndroidResgenExtraArgs>--no-crunch </AndroidResgenExtraArgs>吗?它必须位于您正在使用的配置中,即如果要在.csproj配置中部署,则Debug | AnyCPU必须如此:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<AndroidResgenExtraArgs>--no-crunch </AndroidResgenExtraArgs>

(还要注意--no-crunch之后的尾随空格)

BTW我在安装Nugets时遇到aapt.exe也遇到问题,--no-crunch对此没有帮助。暂时将aapt.exe重命名为aapt2.exe有什么帮助 - Visual Studio不会运行aapt进程,因为它无法找到exe文件,Nuget安装速度很快。但这可能不适用于构建和部署,我认为它会引发错误。

答案 1 :(得分:0)

好吧,在尝试了很多东西后,我做了一个幸运的猜测,并且它有效。

我正在寻找我的csproj并注意到一些奇怪的事情,比如:

<ItemGroup>
    <AndroidResource Include="Resources\layout\onefile.axml" />
</ItemGroup>
<ItemGroup>
    <AndroidResource Include="Resources\layout\anotherfile.axml" />
</ItemGroup>
<ItemGroup>
    <AndroidResource Include="Resources\layout\onemorefile.axml">
        <SomeOtherAttributes />
    </AndroidResource>
</ItemGroup>

所以我想象组织ItemGroups值得一试,并将所有ItemGroups(类,布局,图像,字符串等)放在一起,如:

<ItemGroup>
    <AndroidResource Include="Resources\layout\onefile.axml" />
    <AndroidResource Include="Resources\layout\anotherfile.axml" />
    <AndroidResource Include="Resources\layout\onemorefile.axml" />
</ItemGroup>

它超出了我的预期。不仅解决了我的冰冻问题......它使我的VS比我之前的冰冻问题更快......真的更快!

我不知道重新组织csproj文件是否会导致任何问题,但我会对其他项目做同样的事情,看看会发生什么。

我对csproj和ItemGroup进行了快速研究,没有发现任何相关内容......我相信这是一个错误!