Строка № 2 двоичного XML-файла: ошибка надувания класса android.widget.RelativeLayout - PullRequest
0 голосов
/ 11 ноября 2019

ПОЖАЛУЙСТА, любой хороший разработчик Android поможет мне решить эту проблему

проблема, возникающая здесь:

android:background="@drawable/splash_bg"

splash_bg - это векторное изображение

и мой sdk target - 28 , если я удаляю это (android: background = "@ drawable / splash_bg") , тогда код, передаваемый этим, а затем любой другой деятельности имеет определенный фон, и он выдает ошибку:

Я пытался:

1) проверить, что все xml-изображения доступны для рисования, а не * -v24

2) размер splash_bg

, но ничего не работаетрешить эту проблему

ПОЖАЛУЙСТА, ПОЖАЛУЙСТА, помогите мне решить эту проблему, я буду очень благодарен.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="match_parent"

    android:background="@drawable/splash_bg"

    android:id="@+id/vSplash"

    android:layout_height="match_parent">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_margin="60dp"
        android:layout_alignParentStart="true">

<!--        <ImageView
            android:id="@+id/ivbelowLogo"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="20dp"
            android:layout_marginTop="30dp"
            android:layout_marginStart="30dp"
            android:layout_marginEnd="30dp"
            android:layout_weight="0"
            android:layout_alignParentTop="true"
            android:adjustViewBounds="true"
            android:src="@drawable/splash_zayed_big" />-->

        <ImageView android:id="@+id/ivSplash"
            android:layout_width="match_parent"
            android:layout_weight="4"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_centerHorizontal="true"
            android:src="@drawable/splash_logo"
            android:layout_gravity="center"/>

        <ImageView android:id="@+id/ivSplashGif"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:layout_centerVertical="true"
            android:layout_centerHorizontal="true"
            android:src="@drawable/splash_loading"
            android:layout_gravity="center"/>


    </LinearLayout>


    <RelativeLayout
        android:id="@+id/versionLayout"
        android:layout_width="wrap_content"
        android:layoutDirection="ltr"
        android:layout_marginBottom="10dp"
        android:layout_centerHorizontal="true"
        android:layout_alignParentBottom="true"
        android:layout_height="wrap_content">

        <TextView android:id="@+id/tvVersion"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:textColor="@color/white"
            android:textSize="12dp"
            android:text="@string/version_name"/>

        <!--<TextView android:id="@+id/tvPowered"-->
            <!--android:layout_below="@id/tvVersion"-->
            <!--android:textSize="12dp"-->
            <!--android:layout_centerVertical="true"-->
            <!--android:layout_width="wrap_content"-->
            <!--android:layout_height="wrap_content"-->
            <!--android:text="@string/beta_version" />-->

    </RelativeLayout>

</RelativeLayout>

Работает нормально на всех устройствах, за исключением нескольких, он дает сбой.

Это проблема:

android.view.InflateException: Binary XML file line #2: Error inflating class android.widget.RelativeLayout

E/AndroidRuntime: FATAL EXCEPTION: main
    java.lang.RuntimeException: Unable to start activity ComponentInfo{ae.abc.xyzapp/ae.abc.xyzapp.ui.InitActivity}: android.view.InflateException: Binary XML file line #2: Error inflating class android.widget.RelativeLayout
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2184)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
        at android.app.ActivityThread.access$800(ActivityThread.java:135)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:136)
        at android.app.ActivityThread.main(ActivityThread.java:5001)
        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:785)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
        at dalvik.system.NativeStart.main(Native Method)
     Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class android.widget.RelativeLayout
        at android.view.LayoutInflater.createView(LayoutInflater.java:620)
        at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
        at android.view.LayoutInflater.onCreateView(LayoutInflater.java:669)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:694)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:469)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
        at android.support.v7.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:469)
        at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
        at android.app.Activity.performCreate(Activity.java:5231)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233) 
        at android.app.ActivityThread.access$800(ActivityThread.java:135) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:136) 
        at android.app.ActivityThread.main(ActivityThread.java:5001) 
        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:785) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 
        at dalvik.system.NativeStart.main(Native Method) 
     Caused by: java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Constructor.constructNative(Native Method)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
        at android.view.LayoutInflater.createView(LayoutInflater.java:594)
        at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) 
        at android.view.LayoutInflater.onCreateView(LayoutInflater.java:669) 
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:694) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:469) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:353) 
        at android.support.v7.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:469) 
        at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 
        at ae.mazadat.onlineauctionapp.ui.InitActivity.onCreate(InitActivity.java:87) 
        at android.app.Activity.performCreate(Activity.java:5231) 
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148) 
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233) 
        at android.app.ActivityThread.access$800(ActivityThread.java:135) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:136) 
        at android.app.ActivityThread.main(ActivityThread.java:5001) 
        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:785) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 
        at dalvik.system.NativeStart.main(Native Method) 
     Caused by: android.content.res.Resources$NotFoundException: File res/drawable/splash_bg.xml from drawable resource ID #0x7f080216
        at android.content.res.Resources.loadDrawable(Resources.java:2096)
        at android.content.res.TypedArray.getDrawable(TypedArray.java:602)
        at android.view.View.<init>(View.java:3554)
        at android.view.View.<init>(View.java:3484)
        at android.view.ViewGroup.<init>(ViewGroup.java:464)
        at android.widget.RelativeLayout.<init>(RelativeLayout.java:236)
        at java.lang.reflect.Constructor.constructNative(Native Method) 
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
        at android.view.LayoutInflater.createView(LayoutInflater.java:594) 
        at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) 
        at android.view.LayoutInflater.onCreateView(LayoutInflater.java:669) 
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:694) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:469) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:353) 
        at android.support.v7.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:469) 
        at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 
        at ae.mazadat.onlineauctionapp.ui.InitActivity.onCreate(InitActivity.java:87) 
        at android.app.Activity.performCreate(Activity.java:5231) 
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148) 
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233) 
        at android.app.ActivityThread.access$800(ActivityThread.java:135) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:136) 
        at android.app.ActivityThread.main(ActivityThread.java:5001) 
        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:785) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 
        at dalvik.system.NativeStart.main(Native Method) 
     Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #2: invalid drawable tag vector
        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:2092)
        at android.content.res.TypedArray.getDrawable(TypedArray.java:602) 
        at android.view.View.<init>(View.java:3554) 
        at android.view.View.<init>(View.java:3484) 
        at android.view.ViewGroup.<init>(ViewGroup.java:464) 
        at android.widget.RelativeLayout.<init>(RelativeLayout.java:236) 
        at java.lang.reflect.Constructor.constructNative(Native Method) 
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
        at android.view.LayoutInflater.createView(LayoutInflater.java:594) 
        at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) 
        at android.view.LayoutInflater.onCreateView(LayoutInflater.java:669) 
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:694) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:469) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:353) 
        at android.support.v7.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:469) 
        at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 
        at ae.mazadat.onlineauctionapp.ui.InitActivity.onCreate(InitActivity.java:87) 
        at android.app.Activity.performCreate(Activity.java:5231) 
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148) 
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233) 
        at android.app.ActivityThread.access$800(ActivityThread.java:135) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:136) 
        at android.app.ActivityThread.main(ActivityThread.java:5001) 
        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:785) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 
        at dalvik.system.NativeStart.main(Native Method)

Ответы [ 3 ]

0 голосов
/ 11 ноября 2019

Убедитесь, что вы добавили SVG ресурсы с помощью импорта из Android, как описано в официальном документе .

enter image description here

0 голосов
/ 11 ноября 2019

Вы можете справиться с этой ситуацией другим способом. Кажется, это хорошо для чего-то.

Добавьте ImageView в RelativeLayout и поместите туда splash_bg img в ImageView, а не в RelativeLayout. Пройдя таким образом, ваше приложение не рухнет, и вы получите решение.

Обновите ваш XML, как показано ниже:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:background="@drawable/splash_bg" <!--remove from here -->
    android:id="@+id/vSplash"
    android:layout_height="match_parent">

<!-- put your splash here -->
    <ImageView  
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:src="@drawable/splash_bg"/>


 <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"

        ...

</RelativeLayout>

Надеюсь, это поможет !!

0 голосов
/ 11 ноября 2019

Это будет работать только в том случае, если устройство работает под управлением Android> = 5.XX. Здесь была представлена ​​поддержка векторных рисунков.

В библиотеке AndroidX есть несколько вариантов совместимости ImageView, но я не уверен, что выможет сделать что-нибудь для атрибута фона на макетах. Просто добавьте .png в ваш drawable-hdpi, drawable-xhdpi и т. Д., И т. Д., Чтобы поддерживать уровни API ниже 21.

...