2017-11-22 13 views
3

私はAndroid 8/api 26.をサポートするためにMac用Visual Studioをアップグレードしました。私はAndroidプロジェクトのResourcesディレクトリに新しいフォントフォルダを使用するためにAppCompatライブラリを26.1に更新しました。今私がコンパイルしようとすると、パス "obj/Debug/res/font" APT0000の "Invalid resource directory name"が表示されます。無効なリソースディレクトリ名 "font" Xamarin Android

Error message

Resources folder

Xamarin android version

+0

どのように? – MilanG

+0

@MilanGそれは元々どうだったのですか?バージョン26の互換性のため、リソースとして追加することは可能です。これが私のやり方です。 https://developer.xamarin.com/guides/android/application_fundamentals/resources_in_android/part_7_-_fonts/#Fonts_as_a_Resource – BrunoVT

+0

「ビルドツール」がコンパイルするAPIレベルと一致していることを確認してください。この場合、Oreoをターゲットにするには、ビルドツール26以上を使用する必要があります。 –

答えて

1

まず、常に新しい機能についての最新xamarinのドキュメントをチェックしてください。 https://developer.xamarin.com/guides/android/platform_features/introduction-to-oreo/

私はすぐに新しいxamarinアンドロイドプロジェクトを作成し、切り抜いたフォントで2 textviewsを追加しました:

Test App

私のソリューションは、以下のようになります。

Solution

私は通常してみてくださいアンドロイドスタジオがそれについて不平を言うようにリソース名の大文字を避けるために。

主レイアウト:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <TextView 
    android:text="Pacifico example text" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:fontFamily="@font/pacifico" /> 

    <TextView 
    android:text="Roboto light example text" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:fontFamily="@font/roboto_light" /> 

</LinearLayout> 

私はあなたが構築するために、最新のプラットフォームを使用していないと思います。 最新のプラットフォーム(Oreo)を使用してアプリケーションをビルドすることを確認してください。

4

解決策は、すべての古いAndroid SDKビルドツールをSDKマネージャから削除することでした。今私は唯一のAPIレベル26と27をインストールし、それが動作します。資産/フォントディレクトリにフォントを追加する方法について

enter image description here

+0

新しいツールを追加する必要はありませんでしたが、すべての古いバージョンを削除する必要がありました(<26) – Huby