Ошибка при раздувании нижнего навигационного вида

Он отлично работает на моем телефоне с API 27, но дает сбой в API22

вот XML-файл

<android.support.design.widget.CoordinatorLayout 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:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".ReportsActivity">

<FrameLayout
    android:id="@+id/frame_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior" />

<android.support.design.widget.BottomNavigationView
    android:id="@+id/navigation"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom"
    android:background="@color/bgBottomNavigation"
    app:itemBackground="@color/bgBottomNavigation"
    android:foreground="?attr/selectableItemBackground"
    app:itemIconTint="@color/nav_color"
    app:itemTextColor="@color/nav_color"
    app:menu="@menu/navigation" />

Here is MainActivity file

Контейнер CoordinatorLayout;

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

    BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation);
    navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);
    requestPermission();


    loadFragment(new BranchVisitFragment());
}

@Override
public void onFragmentInteraction(Uri uri) {

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu, menu);
    return true;


@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    switch (item.getItemId()) {
        case R.id.menuLogout:

            FirebaseAuth.getInstance().signOut();
            finish();
            startActivity(new Intent(this, LoginActivity.class));

            break;

        case R.id.refresh:

            Fragment f = getSupportFragmentManager().findFragmentById(R.id.frame_container);
            if( f instanceof BranchVisitFragment)
                BranchVisitFragment.refresh();
            if(f instanceof GroupFragment)
                GroupFragment.refresh();
            break;

        case R.id.excel:

            Toast.makeText(this,"Creating the Excel Sheet...",Toast.LENGTH_LONG).show();
            CreateExcel.createExcel();
            break;

Я чувствую, что ошибка связана с этим файлом, но я не знаю, как заставить обе эти вещи работать правильно в API22

Вот nav_color.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true" android:color="#039BE5" />
    <item android:color="#616161"  />
</selector>

Я просмотрел stackoverflow в поисках возможных решений, но не смог их найти

Это файл градиента

implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation 'com.android.support:support-v4:28.0.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation 'com.itextpdf:itextg:5.5.10'
implementation 'com.android.support:design:28.0.0'

Это ошибка:

Caused by: android.view.InflateException: Binary XML file line #16: Error inflating class android.support.design.widget.BottomNavigationView
    at android.view.LayoutInflater.createView(LayoutInflater.java:637)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:747)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:810)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:508)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:418)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
    at android.support.v7.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:469)
    at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
    at com.example.aditya.pdf_report.ReportsActivity.onCreate(ReportsActivity.java:59)
    at android.app.Activity.performCreate(Activity.java:6093)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2295)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2404) 
    at android.app.ActivityThread.access$900(ActivityThread.java:154) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1315) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:135) 
    at android.app.ActivityThread.main(ActivityThread.java:5296) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:372) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:912) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:707) 
 Caused by: java.lang.reflect.InvocationTargetException
    at java.lang.reflect.Constructor.newInstance(Native Method)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
    at android.view.LayoutInflater.createView(LayoutInflater.java:611)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:747) 
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:810) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:508) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:418) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:365) 
    at android.support.v7.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:469) 
    at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 
    at com.example.aditya.pdf_report.ReportsActivity.onCreate(ReportsActivity.java:59) 
    at android.app.Activity.performCreate(Activity.java:6093) 
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2295) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2404) 
    at android.app.ActivityThread.access$900(ActivityThread.java:154) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1315) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:135) 
    at android.app.ActivityThread.main(ActivityThread.java:5296) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:372) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:912) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:707) 
 Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f070087
    at android.content.res.Resources.getValue(Resources.java:1313)
    at android.content.res.MiuiResources.getValue(MiuiResources.java:146)
    at android.support.v7.content.res.AppCompatResources.isColorInt(AppCompatResources.java:163)
    at android.support.v7.content.res.AppCompatResources.inflateColorStateList(AppCompatResources.java:110)
    at android.support.v7.content.res.AppCompatResources.getColorStateList(AppCompatResources.java:76)
    at android.support.v7.widget.TintTypedArray.getColorStateList(TintTypedArray.java:171)
    at android.support.design.widget.BottomNavigationView.<init>(BottomNavigationView.java:148)
    at android.support.design.widget.BottomNavigationView.<init>(BottomNavigationView.java:114)

Строка 16 в XML

<android.support.design.widget.BottomNavigationView

Строка 59 в действии

setContentView(R.layout.activity_reports);

цвета.xml

    <?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="colorPrimary">#1F618D</color>
    <color name="colorPrimaryDark">#000</color>
    <color name="colorAccent">#D81B60</color>
    <color name="bgBottomNavigation">#fff</color>
    <color name="activated">#039BE5</color>
    <color name="notactive">#616161</color>

</resources>

меню.xml

<?xml version="1.0" encoding="utf-8"?>

<item
    android:id="@+id/menuLogout"
    android:title="Logout" />

<item
    android:title=""
    android:id="@+id/refresh"
    android:icon="@drawable/ref"
    app:showAsAction="always"/>

<item
    android:id="@+id/excel"
    android:title="Create Excel"
    app:showAsAction="never"/>


person Aditya Chandel    schedule 06.11.2018    source источник
comment
что за ошибка??   -  person Pankaj Kumar    schedule 06.11.2018
comment
@PankajKumar Я обновил ошибку   -  person Aditya Chandel    schedule 06.11.2018
comment
Вы пытались запустить код на API 22 без файла nav_color.xml?   -  person victorldavila    schedule 06.11.2018
comment
@victorldavila да, он работал нормально, прежде чем я добавил это   -  person Aditya Chandel    schedule 06.11.2018
comment
Я думаю, что ваша ошибка заключается в том, что @color/nav_color вам нужно добавить файл nav_color.xml в папку с возможностью рисования, а затем добавить @drawable/nav_color в эти поля, что у вас возникли проблемы.   -  person victorldavila    schedule 06.11.2018
comment
@victorldavila Я пробовал, атрибут android:itemiconTint ничего не берет из папки Drawable   -  person Aditya Chandel    schedule 06.11.2018
comment
вы смотрели эту ссылку? stackoverflow.com/questions/45397191/   -  person victorldavila    schedule 06.11.2018
comment
Пожалуйста, опубликуйте все журналы ошибок вместе с макетом и чертежами. Также убедитесь, что нет нескольких макетов.   -  person Mohammedsalim Shivani    schedule 06.11.2018
comment
@victorldavila похоже на мою проблему, но как мы можем это убрать, у меня нет фотошопа.   -  person Aditya Chandel    schedule 06.11.2018
comment
@MohammedsalimShivani Я обновил весь стек ошибок.   -  person Aditya Chandel    schedule 06.11.2018
comment
Что находится в строке №16 в файле XML и в строке №59 в ReportsActivity.java??   -  person Mohammedsalim Shivani    schedule 06.11.2018
comment
@MohammedsalimShivani У меня есть обновление, откуда эти строки   -  person Aditya Chandel    schedule 06.11.2018
comment
Я думаю, у вас есть более 1 xml для ActivityReports для разных версий или ориентаций.   -  person Mohammedsalim Shivani    schedule 06.11.2018
comment
@MohammedsalimShivani У меня для этого работает только один XML, я не думаю, что это ответ.   -  person Aditya Chandel    schedule 06.11.2018
comment
А как насчет colors.xml и menu.xml, используемых в навигации?   -  person Mohammedsalim Shivani    schedule 06.11.2018
comment
@MohammedsalimShivani Обновил их   -  person Aditya Chandel    schedule 06.11.2018
comment
Нет значения с #id nav_color в colors.xml   -  person Mohammedsalim Shivani    schedule 06.11.2018
comment
@MohammedsalimShivani nav_color - это XML-файл, как я написал. Это файл выбора. Я следил за одним из принятых ответов на Stackoverflow, где он был реализован таким образом.   -  person Aditya Chandel    schedule 06.11.2018
comment
Попробуйте android:foreground="?android:attr/selectableItemBackground" в своем макете.   -  person Mohammedsalim Shivani    schedule 06.11.2018
comment
@MohammedsalimShivani уже там   -  person Aditya Chandel    schedule 06.11.2018
comment
android не существует после ?. Пожалуйста, добавьте и попробуйте.   -  person Mohammedsalim Shivani    schedule 06.11.2018
comment
@MohammedsalimShivani извините за предыдущий раз, я добавил, но все равно   -  person Aditya Chandel    schedule 06.11.2018
comment
Затем попробуйте удалить папки .idea и build в корневом каталоге. И перезагрузить проект.   -  person Mohammedsalim Shivani    schedule 06.11.2018
comment
@MohammedsalimShivani Нет, пробовал, все то же самое. раздражает то, что он работал без nav_color, но теперь, даже когда я снова удаляю его, он все еще не работает   -  person Aditya Chandel    schedule 07.11.2018


Ответы (3)


После 12 часов упорных размышлений я наконец нашел решение.

Абсолютно все было в порядке с моим кодом.

Это было в папке drawable.

Я поместил 2 значка PNG в папку с возможностью рисования v24, в результате чего он не работал для API23 и API22, где я проверял.

Так что просто верните их в папку Drawable, и все заработает.

Спасибо всем за помощь.

person Aditya Chandel    schedule 07.11.2018
comment
@MohammedsalimShivani Конечно. На самом деле Stack Overflow позволяет принимать ответы после 36 часов ответа. - person Aditya Chandel; 08.11.2018
comment
Голосование. Я унаследовал это, и мне потребовалось пару часов, чтобы понять - спасибо за этот пост. - person ror; 28.10.2019

У меня была такая же проблема, и я решил ее, удалив атрибут стиля из нижнего представления навигации xml.

style="@style/Widget.MaterialComponents.BottomNavigationView"

person Salar Arabpour    schedule 28.12.2019

нижняя навигация была добавлена ​​в API 26 /reference/android/support/design/widget/BottomNavigationView

person Andrei Chernyshev    schedule 06.11.2018
comment
Это, конечно, видно из ссылки, но только вчера, когда я не добавил файл nav_color.xml, он работал нормально. ТАК ЭТО точно НЕ ответ - person Aditya Chandel; 06.11.2018
comment
аккд. по этой ссылке поддерживается до API 14 stackoverflow.com/a/51464819/10485139 - person Aditya Chandel; 06.11.2018
comment
я не вижу, где они видят 14 в любой из этих ссылок. - person Andrei Chernyshev; 06.11.2018