Azureに仮想マシンを展開しました。 Visual Studio 2015、Xamarin、その他のモバイル開発ツールをインストールしました。ローカルコンピューターで同じセットアップを行って、Visual Studioのデバイスでアプリをテストしました
唯一の違いはAndroid SDKのインストールです。ローカルマシンには、イメージシステムがありません。
仮想マシンでアプリケーションを開発しました。コンパイル中にエラーはありません。 Android.Support.Design、Android.Support.V4、Android.Support.V7.AppCompat、Android.Support.V7.RecyclerView(NuGetの最新リリース)およびそれらのMvvmCross実装を使用します。
ローカルコンピューターでアプリケーションの開発を続けたいと思いました。 NuGetパッケージが適切に復元されます。
アプリをビルドすると、いくつかのエラーが発生します。
_Error Error retrieving parent for item: No resource found that matches the given name 'Theme.AppCompat.Light.DarkActionBar'. Novatech.Droid D:\Sources\Novatech\Novatech.Droid\Resources\values\styles.xml
Error Error retrieving parent for item: No resource found that matches the given name 'Base.Widget.AppCompat.Button'. Novatech.Droid D:\Sources\Novatech\Novatech.Droid\Resources\values\styles.xml
Error No resource found that matches the given name: attr 'buttonStyle'. Novatech.Droid D:\Sources\Novatech\Novatech.Droid\Resources\values\styles.xml
Error No resource found that matches the given name: attr 'colorAccent'. Novatech.Droid D:\Sources\Novatech\Novatech.Droid\Resources\values\styles.xml
Error No resource found that matches the given name: attr 'colorPrimary'. Novatech.Droid D:\Sources\Novatech\Novatech.Droid\Resources\values\styles.xml
Error No resource found that matches the given name: attr 'colorPrimaryDark'. Novatech.Droid D:\Sources\Novatech\Novatech.Droid\Resources\values\styles.xml
Error No resource found that matches the given name: attr 'windowActionBar'. Novatech.Droid D:\Sources\Novatech\Novatech.Droid\Resources\values\styles.xml
Error No resource found that matches the given name: attr 'windowNoTitle'. Novatech.Droid D:\Sources\Novatech\Novatech.Droid\Resources\values\styles.xml
Error No resource found that matches the given name: attr 'windowNoTitle'. Novatech.Droid D:\Sources\Novatech\Novatech.Droid\Resources\values\styles.xml
_
試しました
C:\Program Files (x86)\Android\android-sdk\extras\Android\support\v7\appcompat\project.properties
で_target=Android-19
_を_target=Android-21
_に変更するには誰かが問題を教えてくれますか?落とした。同じOS、同じツール、同じSDK、同じJDK、
Xamarin ComponentsからNuGetパッケージに切り替えたところ、動作します。 MvvmCrossは、その依存関係(MvvmCross.Droid.Support.V4、MvvmCross.Droid.Support.V7.AppCompat、MvvmCross.Droid.Support.V7.Preference ...)のために、パッケージNuget(23.3.0)の最新バージョンをインストールしました。以前に使用したコンポーネント。
また、仮想マシンから「C:\ Users\andres\AppData\Local\Xamarin」フォルダーをコピーする必要がありました。
Visual Studioでは、コンポーネントの利用可能な更新に関する通知はありませんでした。
私の場合、"Minimum Android Version" API 21、しかし"Target Android Version" 「ターゲットフレームワークバージョン(API 23)を使用する」ですが、以前は機能していなかったため、両方のバージョンをAPI 21として指定し、突然すべてが予期したとおりに動作し始めました。
後で最小AndroidバージョンはAPI 21でターゲットAndroidバージョンは「ターゲットフレームワークバージョン(API 23)を使用」として変更しました
style.xmlでこれらのアイテムを使用していたため、同じ問題が発生しました
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
しかし、color.xml内にはcolorAccentが定義されていません
<resources>
<color name="primary">#2196F3</color>
<color name="primaryDark">#1976D2</color>
<color name="accent">#FFC107</color>
<color name="window_background">#F5F5F5</color>
<color name="splash_background">#3498DB</color>
追加するだけで解決
<color name="colorAccent">#3498db</color>
これを試して。
C:\Program Files (x86)\Android\android-sdk\extras\Android\support\v7\appcompat
に移動します。
開いた project.properties
ファイル。
ターゲットを変更Androidにtarget=Android-21
。
私の場合、Xamarin.SupportのバージョンをTarget Frameworkのバージョンに一致させました。
例:25 APIを対象とする場合、サポートライブラリも25.xである必要があります。
プロジェクトをあるフォルダーから別のフォルダーに移動した後、まったく同じラップトップで同じ問題が発生しました。私は試行錯誤を経て動作しましたが、それでも問題の原因はわかりません。それを修正するには、ソリューションを数回クリーニングし、Visual Studioを再起動する必要がありました。
私の場合、Android-layout-xml.xsd
メニューの下にschemas.Android.com.apk.res.Android.xsd
とXML -> Schemas
を追加することでこの問題を修正できました(axmlファイルの場合のみアクセス可能です)。これらのファイルの正確な場所については、他の回答で提案されているように、Xamarinのフォルダー内にないため、コンピューターで検索することをお勧めします。私の場合、それらはobjフォルダー[obj -> Debug -> Schemas ...
]の下のプロジェクトにありました。
これがあなたの問題に役立つことを願っています。
これらのいずれかまたはすべてを指定された順序で試してください。
それは私のために問題を解決しました
コンパイルSDKバージョンは、サポートライブラリのメジャーバージョンと一致する必要があります。
サポートライブラリv23を使用しているため、Android SDKのv23に対してコンパイルする必要があります。
または、最新のサポートライブラリv22に切り替えて、Android SDKのv22に対してコンパイルを続行できます。
仮想マシンでVisual Studioを使用せずにMSBuildを使用すると、同様の問題が発生しました。 Xamarin Androidプロジェクトをビルドしようとしました。「テーマtheme.appcompat.light.darkactionbarの親を取得中にエラーが発生しました。」というメッセージが表示されたままでした。引数/ t:restore-たとえば
msbuild /t:SignAndroidPackage /t:restore /p:Configuration=Release <project path>
復元引数を指定して最初に実行したときはまだ失敗しましたが、再度ビルドしようとすると機能しました。これが誰かの助けになることを願っています-MSBuildを適切に設定するのに数時間かかりました!
私の場合、問題はローカルのNuget Package Serverがあることです。
Xamarin Studioが間違ったソースからパッケージを更新しようとしていたことに気づくまでしばらくかかりました。
スタイルから参照されている属性のエラーが発生していたため、attrs.xmlの名前をAttrs.xmlに変更しました(クリーンな再構築後にエラーが再び発生した場合は元に戻ります)。