На некоторых мобильных телефонах появляется ошибка android.view.InflateException: двоичный XML-файл SlidingMenu.

Мое приложение работает нормально на большинстве телефонов, однако на некоторых телефонах выдает ошибку, указанную ниже:

android.view.InflateException: Binary XML file line #2: Error inflating class com.jeremyfeinstein.slidingmenu.lib.SlidingMenu
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1686)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1702)
    at android.app.ActivityThread.access$1600(ActivityThread.java:118)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:952)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:130)
    at android.app.ActivityThread.main(ActivityThread.java:3768)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:507)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
    at dalvik.system.NativeStart.main(Native Method)
Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class com.jeremyfeinstein.slidingmenu.lib.SlidingMenu
    at android.view.LayoutInflater.createView(LayoutInflater.java:518)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:570)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:386)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
    at com.jeremyfeinstein.slidingmenu.lib.app.a.a(Unknown Source)
    at com.jeremyfeinstein.slidingmenu.lib.app.SlidingFragmentActivity.onCreate(Unknown Source)
    at com.qingdaonews.bus.BaseActivity.onCreate(Unknown Source)
    at com.qingdaonews.activity.MainActivity.onCreate(Unknown Source)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1046)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1650)
    ... 11 more
Caused by: java.lang.reflect.InvocationTargetException
    at java.lang.reflect.Constructor.constructNative(Native Method)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:415)
    at android.view.LayoutInflater.createView(LayoutInflater.java:505)
    ... 21 more
Caused by: java.lang.UnsupportedOperationException: Can't convert to dimension: type=0x1
    at android.content.res.TypedArray.getDimensionPixelSize(TypedArray.java:463)
    at android.view.View.(View.java:2096)
    at android.view.ViewGroup.(ViewGroup.java:294)
    at android.widget.RelativeLayout.(RelativeLayout.java:178)
    at com.jeremyfeinstein.slidingmenu.lib.SlidingMenu.(Unknown Source)
    at com.jeremyfeinstein.slidingmenu.lib.SlidingMenu.(Unknown Source)

Версия Android этого телефона - 2.3.5, которую поддерживает мое приложение (это нормально на других телефонах 2.3.5). Поэтому я не понимаю, почему только этот телефон будет получать ошибку, и я не знаю, как это сделать. почини это.
XML макета является верным образцом:

<?xml version="1.0" encoding="utf-8"?>
<com.jeremyfeinstein.slidingmenu.lib.SlidingMenu xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/slidingmenumain"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" /><br>

И главный класс находится здесь jfeinstein10 скользящее меню


person GuoBuping    schedule 19.12.2013    source источник


Ответы (2)


В нем говорится, что вы используете некоторые API, которых нет в 2.3.5. Используете ли вы в макете скользящего меню некоторые атрибуты RelativeLayout, которых не было в предыдущих версиях Android? Например, android:layout_alignParentEnd

person Pavel Dudka    schedule 19.12.2013
comment
Спасибо, но на других телефонах 2.3.5 нормально и я не использовал какой-то api выше 2.3.5 - person GuoBuping; 19.12.2013
comment
Можете ли вы опубликовать XML-файл с макетом скользящего меню? Проблема явно есть :) - person Pavel Dudka; 19.12.2013
comment
Я не вижу здесь ничего плохого, и, согласно logcat, он вылетает прямо в конструкторе View (до этих страшных манипуляций с макетом из класса SlidingMenu). Поэтому я предполагаю, что на вашем устройстве есть пользовательская сборка Android (не официальная), которая выдает это исключение. Я только что проверил строку 2096 реализации View в 2.3.5. И он не вызывает getDimensionPixelSize, поэтому я предполагаю, что это кастомная сборка (какой-то CyanogenMod или что-то подобное). - person Pavel Dudka; 19.12.2013
comment
Большое спасибо.Это настраиваемая сборка, но многие обычаи используют этот тип ROM, поэтому мне интересно, в чем причина этого, чтобы решить проблему.Это слишком запутанно, чтобы исправить проблему в пользовательской сборке - person GuoBuping; 19.12.2013
comment
Да .. Очень сложно понять, что происходит без доступа к реализации View пользовательского ROM. Что бы я сделал - я бы поиграл с параметрами width и height. Попробуйте сменить его на match_parent. Глупое предложение, я знаю, но иногда даже самые глупые идеи срабатывают :) - person Pavel Dudka; 19.12.2013
comment
Спасибо, попробую. Без размера производительность пользовательского интерфейса может быть не такой хорошей, как раньше, но, как вы говорите, глупая идея обычно работает. - person GuoBuping; 19.12.2013

Для Android Studio 3.0.1

У меня такая же проблема, и я наконец решил ее, открыв gradle.properties и добавив следующую строку:

android.enableAapt2=false

person Shahid Aslam    schedule 13.02.2018