У меня этот сбой для Android API 16, он отлично работает с API 19 и выше.

    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    CalligraphyConfig.initDefault(new CalligraphyConfig.Builder()
            .setDefaultFontPath("fonts/Arkhip_font.tff")
            .setFontAttrId(R.attr.fontPath)
            .build());
    setContentView(R.layout.activity_main);

Вот все мои журналы

09-20 16:16:09.197 10921-10921/com.swaq.joemayami.riderapp E/UncaughtException: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.swaq.joemayami.riderapp/com.swaq.joemayami.riderapp.MainActivity}: android.view.InflateException: Binary XML file line #64: Error inflating class Button
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2342)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2392)
    at android.app.ActivityThread.access$800(ActivityThread.java:151)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1266)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:136)
    at android.app.ActivityThread.main(ActivityThread.java:5421)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:515)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:979)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:795)
    at dalvik.system.NativeStart.main(Native Method)
 Caused by: android.view.InflateException: Binary XML file line #64: Error inflating class Button
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
    at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.inflate(CalligraphyLayoutInflater.java:60)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
    at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287)
    at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
    at com.swaq.joemayami.riderapp.MainActivity.onCreate(MainActivity.java:82)
    at android.app.Activity.performCreate(Activity.java:5264)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1099)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2282)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2392) 
    at android.app.ActivityThread.access$800(ActivityThread.java:151) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1266) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:136) 
    at android.app.ActivityThread.main(ActivityThread.java:5421) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:515) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:979) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:795) 
    at dalvik.system.NativeStart.main(Native Method) 
 Caused by: android.content.res.Resources$NotFoundException: File res/drawable/btn_signin.xml from drawable resource ID #0x7f080064
    at android.content.res.Resources.loadDrawable(Resources.java:2228)
    at com.huawei.android.content.res.ResourcesEx.loadDrawable(ResourcesEx.java:632)
    at android.content.res.TypedArray.getDrawable(TypedArray.java:641)
    at android.view.View.<init>(View.java:3562)
    at android.widget.TextView.<init>(TextView.java:640)
    at android.widget.Button.<init>(Button.java:107)
    at android.support.v7.widget.AppCompatButton.<init>(AppCompatButton.java:70)
    at android.support.v7.widget.AppCompatButton.<init>(AppCompatButton.java:66)
    at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:109)
    at android.support.v7.app.AppCompatDelegateImplV9.createView(AppCompatDelegateImplV9.java:1016)
    at android.support.v7.app.AppCompatDelegateImplV9.onCreateView(AppCompatDelegateImplV9.java:1073)
    at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater$WrapperFactory2.onCreateView(CalligraphyLayoutInflater.java:280)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:684)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:755) 
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:758) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:492) 
    at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.inflate(CalligraphyLayoutInflater.java:60) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:353) 
    at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287) 
    at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) 
    at com.swaq.joemayami.riderapp.MainActivity.onCreate(MainActivity.java:82) 
    at android.app.Activity.performCreate(Activity.java:5264) 
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1099) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2282) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2392) 
    at android.app.ActivityThread.access$800(ActivityThread.java:151) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1266) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:136) 
    at android.app.ActivityThread.main(ActivityThread.java:5421) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:515) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:979) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:795) 
    at dalvik.system.NativeStart.main(Native Method) 
 Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #2: invalid drawable tag ripple
    at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:933)
    at android.graphics.drawable.Drawable.createFromXml(Drawable.java:877)
    at android.content.res.Resources.loadDrawable(Resources.java:2222)
    at com.huawei.android.content.res.ResourcesEx.loadDrawable(ResourcesEx.java:632) 
    at android.content.res.TypedArray.getDrawable(TypedArray.java:641) 
    at android.view.View.<init>(View.java:3562) 
    at android.widget.TextView.<init>(TextView.java:640) 
    at android.widget.Button.<init>(Button.java:107) 
    at android.support.v7.widget.AppCompatButton.<init>(AppCompatButton.java:70) 
    at android.support.v7.widget.AppCompatButton.<init>(AppCompatButton.java:66) 
    at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:109) 
    at android.support.v7.app.AppCompatDelegateImplV9.createView(AppCompatDelegateImplV9.java:1016) 
    at android.support.v7.app.AppCompatDelegateImplV9.onCreateView(AppCompatDelegateImplV9.java:1073) 
    at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater$WrapperFactory2.onCreateView(CalligraphyLayoutInflater.java:280) 
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:684) 
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:755) 
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:758) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:492) 
    at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.inflate(CalligraphyLayoutInflater.java:60) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:353) 
    at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287) 
    at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) 
    at com.swaq.joemayami.riderapp.MainActivity.onCreate(MainActivity.java:82) 
    at android.app.Activity.performCreate(Activity.java:5264) 
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1099) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2282) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2392) 
    at android.app.ActivityThread.access$800(ActivityThread.java:151) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1266) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:136) 
    at android.app.ActivityThread.main(ActivityThread.java:5421) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:515) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:979) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:795) 
    at dalvik.system.NativeStart.main(Native Method) 

Вот мой xml-файл для моей основной деятельности:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background"
android:id="@+id/rootLayout"
tools:context=".MainActivity">
<LinearLayout
    android:orientation="vertical"
    android:layout_marginTop="30dp"
    android:layout_centerHorizontal="true"
    android:gravity="center_horizontal"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="C I T Y K R U I Z"
        android:textSize="36sp"
        android:textAlignment="center"
        android:textColor="@android:color/white"
        />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="USER"
        android:layout_marginTop="20dp"
        android:textSize="16sp"
        android:textAlignment="center"
        android:textColor="@android:color/white"
        />
</LinearLayout>
<TextView
    android:id="@+id/txt_forgot_password"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="20dp"
    android:layout_marginTop="20dp"
    android:text="(c) 2018 by SWAQ Dev"
    android:textSize="12sp"
    android:textColor="@color/transparent"
    android:textAlignment="center"
    />
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:weightSum="1"
    android:layout_above="@+id/txt_forgot_password"
    android:layout_margin="16dp"
    >
    <Button
        android:layout_width="0dp"
        android:layout_weight="1"
        android:background="@drawable/btn_signin"
        android:layout_height="wrap_content"
        android:text="CONTINUE"
        android:layout_marginRight="6dp"
        android:textColor="@android:color/white"
        android:id="@+id/btnContinue"/>
</LinearLayout>
</RelativeLayout>
-3
Sarb Corp 20 Сен 2018 в 18:22

2 ответа

Лучший ответ

Поскольку вы используете библиотеку каллиграфии перед созданием макета , в будущем должны возникнуть и другие проблемы. Итак, как уже было написано в документации, определите каллиграфию внутри метода onCreate() и после расширения макета:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    CalligraphyConfig.initDefault(new CalligraphyConfig.Builder()
            .setDefaultFontPath("fonts/Arkhip_font.tff")
            .setFontAttrId(R.attr.fontPath)
            .build());
}

Это должно решить большинство проблем, но есть и другие проблемы:


Ресурсы $ NotFoundException: файл res/drawable/btn_signin.xml из выводимый идентификатор ресурса

Он также не смог найти такой файл в drawable/btn_signin.xml.

Строка 2 двоичного файла XML: недопустимая рябь тега для рисования

Существует еще одна проблема с рябью тегов с возможностью рисования , поэтому вам следует проверить коды из связанного файла drawable.

0
ʍѳђઽ૯ท 20 Сен 2018 в 15:38

Всегда нужно внимательно читать трассировку стека, так как, несмотря на высокий уровень шума, она содержит кое-какие подсказки. А именно запись Caused by может пролить свет:

Caused by: android.content.res.Resources$NotFoundException: 
    File res/drawable/btn_signin.xml from drawable resource ID #0x7f080064

В основном это означает, что ваш файл btn_signin.xml ссылается на ресурс, которого нет в API 16. Я настоятельно рекомендую вам запустить Lint в своем проекте.

0
Marcin Orlowski 20 Сен 2018 в 15:36