2017-02-23 16 views
2

私はXamarinを使用してVisual Studio 2015上にAndroidアプリをインストールしており、頻繁にフリーズしています。Visual Studio 2015 Xamarin freezing

私が毎回再現できる唯一のシナリオは、展開直後です。アプリがエミュレータまたはデバイスにデプロイされた直後にVSがフリーズします。アプリは正常に動作しますが、VSは数秒間フリーズします。他のシナリオでもフリーズします。

VSは私が何をしても「応答していません」というメッセージを表示しません。それはいくつかのバックグラウンド作業をしているようで、それは本当に凍結されていないが、私は問題が何であるか把握することはできません。

自分のプロジェクトを最初から作り直しました。リソースを追加していくつかのNuGetパッケージ(appcompat v7とfirebaseクラウドメッセージング)をインストールすると問題が再び発生し始めました。

私は

shown in this imageのように、いくつかのレイアウトファイルにいくつかの属性を認識しない、それが何らかの形でVSに近い関連推測しています。

1 - 凍結の問題についての助言?

2 - VSはこれらの属性を認識するために何ができますか?

3 - resources.csをビルド時にのみ再生成するように設定できますか?

更新

thisを見つけましたが、私のために働いていませんでした!

アップデート2

[OK]を、今、私はこの問題は、Androidのリソースの世代である100%確信しています。 aapt.exeはこの歴史の悪役ですが、毎回Visual Studioの実行とフリーズを止めることはできません。レイアウトファイルなどのXMLエラーを無視する設定がありますか?

答えて

0

私はあなたが参照しているバグジラの投稿を作成した人です。

正しい場所に<AndroidResgenExtraArgs>--no-crunch </AndroidResgenExtraArgs>がありますか?

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

(も--no-crunch後、末尾のスペースに注意してください)

ところで私も悩みを持っている:それはあなたがDebug | AnyCPU構成で展開されている場合.csprojはこのようでなければならない。すなわち、あなたが使用しているコンフィギュレーション内でなければなりませんaapt.exeとNugetsをインストールすると--no-crunchは役に立ちません。 aapt.exeの名前を一時的にaapt2.exeに変更するのに役立つのはVisual Studioでaaptプロセスが実行されないのは、exeファイルが見つからず、Nugetのインストールが高速であるためです。しかし、これはおそらくビルドとデプロイではうまくいかないでしょう。私はそれがエラーを投げると思います。

+0

実際に私は trueを追加しました。これはUIの問題を引き起こす可能性があります...私もすべてのPNGファイルをPNGに変更しましたが動作しませんでした。しかし、私のcsprojファイルを再編成してしまった。今私の解決策を追加します。 – user3701240

0

私は多くのものを試した後、私は幸運な推測をし、それは働いた。

私は私のcsprojに見て、同じように、いくつかの奇妙な事に気づいた。だから私はItemGroupsを整理すると、試してみる価値だろうし、すべてのItemGroups(クラス、レイアウト、画像、文字列などを置くことを想像

<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> 

)のように一緒に:

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

それは私が期待した以上に働いた。私の凍結の問題を解決しただけでなく、凍結の問題の前よりもVSが速くなった...本当に速い!

csprojファイルの再編成で問題が発生するかどうかはわかりませんが、私は他のプロジェクトと同じことをして、どうなるか見てみましょう。

私はcsprojとItemGroupについて簡単に調査したが、関連するものは見つからなかった...私はそれがバグだと思う!

関連する問題