Каллиграфическая библиотека от chrisjenx не работает

Я сделал то, что его документация проинструктировала о настройке шрифта по умолчанию:

 @Override
 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setupDefaultFont();

        setContentView(R.layout.activity_main);

        setupToolbarAndNavigationDrawer();
  }

  public void setupDefaultFont() {
        CalligraphyConfig.initDefault(new CalligraphyConfig.Builder()
                        .setDefaultFontPath("fonts/OpenSans-Regular.ttf")
                        .setFontAttrId(R.attr.fontPath)
                        .build()
        );
  }

Я также помещал шрифты в assets/fonts, но безрезультатно. Roboto по-прежнему отображается как шрифт по умолчанию, а не Open Sans. Я попытался применить его вручную по одному к каждому TextView, но все же он не работает.

Любые идеи о том, почему это не работает?

Дополнительная информация: (В случае, если это полезно) My miniSdkVersion - 15, а targetSdkVersion - 22. Это мои зависимости:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.2.0'
    compile 'com.android.support:design:22.2.0'
    compile 'com.android.support:recyclerview-v7:21.0.3'
    compile 'com.android.support:cardview-v7:21.0.3'
    compile 'de.hdodenhof:circleimageview:1.2.1'
    compile 'uk.co.chrisjenx:calligraphy:2.1.0'
}

И это специальная тема, которую я использую.

<resources>
    <style name="myIIT_theme" parent="Theme.AppCompat">
        <item name="colorPrimaryDark">@color/primary_dark</item>
        <item name="colorPrimary">@color/primary</item>
        <item name="android:textColorPrimary">@color/white</item>
        <item name="android:windowBackground">@color/tertiary_dark</item>
        <item name="android:activatedBackgroundIndicator">@drawable/selected_drawer</item>
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
    </style>
</resources>

Ответы

Ответ 1

Чтобы настройка вступила в силу, вы должны настроить шрифт по умолчанию в методе onCreate() вашего пользовательского класса приложения, а не в действии.

Кроме того, инструкции в https://github.com/chrisjenx/Calligraphy говорят, что они вводят в контекст, переопределяя метод в действии следующим образом:

@Override
protected void attachBaseContext(Context newBase) {
    super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase));
}

Ответ 2

Наряду с ответом @Theo, убедитесь, что вы зарегистрировали свое приложение в манифесте

<application
  android:name=".MyApplication" <----------- HERE
  android:allowBackup="true"
  android:icon="@mipmap/ic_launcher"
  android:label="@string/app_name"
  android:roundIcon="@mipmap/ic_launcher_round"
  android:supportsRtl="true"
  android:theme="@style/AppTheme">

Ответ 3

как упомянуто в файле Readme в github, Эта версия Каллиграфии достигла своего конца жизни и больше не поддерживается. Пожалуйста, перейдите на Каллиграфия 3!