私はすでに2日間その問題と戦っていますが、解決策が見つかりません。
Visual Studio 2017には、3つのプロジェクトで構成されるXamarin Androidアプリがあります。
NUnit 3 Test Project (Android)
のプロジェクトは、 NUnit Templates for Visual Studio を使用して作成されますUnit Test Project (.NET Framework)
のプロジェクト)今まではすべてうまくいった。メインプロジェクトをスタートアッププロジェクトとして選択すると、アプリがデバイス/エミュレーターにデプロイされました。 Android固有の単体テストプロジェクトを選択すると、テストプロジェクトが展開され、デバイス/エミュレーター上のnUnit Xamarin Runnerによって単体テストが実行されました。
ただし、数日前にVisual Studio 2017を利用可能な最新の更新で更新し、このAndroid固有の単体テストプロジェクトをビルドしようとすると、次のエラーが表示されます:
The file "obj\Debug\Android\bin\packaged_resources" does not exist.
this および this SOトピックを含め、どこでも検索しました。また、Android SDKが含まれたVisual Studio 2017とXamarinを完全に再インストールしました。何も助けませんでした。私が読んだことから、インストールしたAndroid SDK Build-toolsのバージョンに何か問題があると思われます。 SDKマネージャーに現在インストールしているものは次のとおりです。
他のSOスレッドが示唆したように、最新Android SDK Build-tools(25.0.2)をアンインストールして、バージョン23.0.3(すべてのプロジェクトターゲットAndroid 6.0)が、それでも助けにはなりません、私はまだ同じエラーがあります。
追加する価値があるかもしれませんが、アプリにRecyclerViewを実装しようとしたときにこの問題が発生し始めた可能性があります this チュートリアル、インストールすることを提案した場所 25)SDKマネージャー。ただし、その後のすべての変更を取り消し、VS2017 + Xamarinを再インストールしました。
これができる理由は他にありますか?私はどんな助けも本当に感謝しています。ありがとう!
EDIT 2017-04-09:
たとえば、VS2017を削除し、VS2015に新しいAndroid SDKをインストールしましたが、それでも同じ問題があります:(
私はついに問題が何であるかを見つけました。 SDKマネージャーまたはVSバージョンのコンポーネントとは関係ありませんでした。
developer.xamarin.comのローカライズチュートリアル に従って、AndroidプロジェクトでStrings.xml
を少し使用しました。アクティビティラベルをリソースも同様であるため、ActivityAttribute
で定義したもの:
[Activity(Label = "@string/peopleListTitle")]
Strings.xml
ファイルにこの値を追加しました:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-------Other resources values ----->
<string name="peopleListTitle">People List</string>
</resources>
その場合、私のビルドは上記のエラーで失敗します:
The file "obj\Debug\Android\bin\packaged_resources" does not exist
文字列を直接使用するようにActivityAttribute
を変更すると:
[Activity(Label = "People List")]
ビルドは問題なく通過しています。
私はなんとか解決策を見つけることができましたが、実際にStrings.xml
で定義されたラベルテキストを使用しようとすると、なぜ構築されないのかわかりません。
ところで、私はTools-> Options-> Projects and Solutions-> Build and Runでビルド出力の冗長性をDiagnostic
に設定することで問題を見つけましたビルドが失敗した理由の詳細情報が[出力]ウィンドウに表示されます。
同じ問題がありました。イメージファイル名からダッシュ「-」記号を削除すると、問題は解決します。悪いエラーメッセージ!以下であってはなりません。
ファイル「obj\Debug\Android\bin\packaged_resources」は存在しません。
このようなエラーメッセージを書くと、開発者は他のことを考えてしまいますが、問題は不正なファイル名です。
新しいイメージをリソースとして追加したときにも同じ問題が発生しました。ありました ' - -
'ファイル名(無効なリソース名文字)。名前を変更し、そのキャラクターを削除しました。リソース名は、0〜9、a〜z、A〜Z、または任意の組み合わせでのみ構成できます。
同じ問題が発生し、すべての画像ファイル名に「-」文字が含まれているのを削除しました。私の問題は解決しました
単にそれが働いた。
このエラーのもう1つの理由は、バージョン番号としてfloat numberを使用している可能性があることです。私の場合、整数に変更しましたが、すべて正常に機能しました。 (build outputをDetailedに切り替えてエラーを見つけました)
バージョンコードが「1.0」でコードを設定したからといって、ファイル「obj\Debug\Android\bin\packaged_resources」が存在しません。 ;そして、私はそれを「1」に設定し、すべてが大丈夫です。
SDKの更新、Xamarinの更新など、いくつかのオンラインの提案に従った後、どれもうまくいきませんでした。
最後に、以下のようにAndroidManifestファイルにAndroidプロバイダーから目覚まし時計へのプロバイダーがあります
<activity
Android:name="com.njcommuter.droid/Android.provider.AlarmClock"
Android:label="AlarmClock"
.....
/>
この行を削除-およびrebuildingはエラーなしで正常に機能し、ソリューションを正常にデプロイできました。
注:行を戻すことでこれをテストすると、再構築時に再び同じエラーが発生します。これは、パッケージを作成する任意のAndroidプロバイダーを使用してリンクすることができ、必ずしもAlarmClockのみではありません。
このエラーのもう1つの理由は、Android NDK(Android SDK)ではない場合)、バージョンの変更により問題を解決できる場合:ツールに移動します/ Options/Xamarin/Android Configuratorとフォルダの変更、私の場合は3つあります。最後の1つはコンパイルできませんが、2番目のバージョンはxx.r11c
やる。
私は別の解決策でした(そして半日だけ失われました):アプリの正しいバージョンに対してクラッシュを一致させるためにホッケーアプリを取得するのに問題があり、VersionNameではなくVersionCodeを使用していることに気づいたので、コードを「0.0.34」に変更します名前と同じ。何らかの未知の理由で、このエラーが発生し始める前に、アプリがビルドされてデバイスに約3日間展開されましたThe file "obj\Debug\Android\bin\packaged_resources" does not exist.
数値に戻すことで問題が修正されました。
GITログを振り返って問題を発見し、問題を引き起こしたものが見つかるまで各プッシュを再構築しました。
それらのエントリを手動で削除する場合は、resources.designer.csに未使用のエントリがあるかどうかを確認します。これにより問題が修正されます。
このエラーは、ファイルが作成されなかったという複数の理由である可能性のあるラッパーです。重要なのは、詳細な出力を調べて、ファイル作成エラーの原因となっている根本的なエラーを探すことです。
私の場合、icon.pngファイルが破損していました(VS xamarin nunitテンプレートから直接生成されました!)。有効なPNGファイルを入力すると、すべてが正常に構築されました。