私の活動では、カスタムツールバーがあります。タイトルフォントを変更しようとしています。ツールバーのカスタムフォントを使用するとクラッシュする
以前は、アセットフォルダにフォントを置くことでこれを行うことができました。 Android Studio 3では、fontFamilyとFontsContractを使用できるようになりました。 私は以下のコードを、この方法を試してみました:私はアプリを実行すると、数秒(それはカスタムフォントをダウンロードするのにかかる時間)の後、
mToolbar.setTitleTextAppearance(context,R.style.AppTheme_ActionBarText);
とスタイル
<style name="AppTheme.ActionBarText" parent="@android:style/Widget.ActionBar.TabText">
<item name="fontFamily">@font/ultra</item>
</style>
のjava.lang.NullPointerException:フィールドから読み取ろうと 'int型 android.support.v4.provider.FontsContractCompat $ TypefaceResult.mResult'以下のログでアプリがクラッシュしますandroid.support.v4.provider.FontsContractCompat $ 2.onReplyでandroid.support.v4.provider.FontsContractCompat $ 2.onReply(FontsContractCompat.java:277) (FontsContractCompat.java:274) ATでヌルオブジェクト参照 にandroid.support.v4.provider.FontsContractCompat $ 3.onReply(FontsContractCompat.java:312) android.support.v4.provider.FontsContractCompat $ 3.onReply(FontsContractCompat.java:300) android.support.v4.provider。 SelfDestructiveThread $ 2 $ 1.run(SelfDestructiveThread.java:149) (android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) はandroid.osです。 Looper.loop(Looper.java:158) android.app.ActivityThread.main(ActivityThread.java:7225) at java.lang.reflect.Method.invoke(ネイティブメソッド) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java: com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)にて1230)
は、これはバグやXMLを介しフォントをロードするための正しい方法は何ですか? 私は別の方法として、プログラムでフォントをロードし、リスナーを使ってテキストの書体を設定する方法を知っています。
** EDIT:2回目のアプリケーションの実行時に、フォントが既にダウンロードされているためクラッシュしません。テスト目的のために、私はデバッグするすべてのクラッシュの後にフォントを変更しています...
これに関する更新情報はありますか?私は同じ問題を抱えています。 – engincancan
同じ問題に直面しているIm、あなたはそれを解決するために管理しましたか? – busted13
キャッシュが無効で、アンドロイドのスタジオを再起動します。 アンドロイドスタジオ - >ファイル - >無効なキャッシュ/ Restrat – Jovin