-1

i have annoying error when implementing BottomNavigationView. And some similar questions doesn't solved my problem (this). Actually i have development a complex project but in order to new fixed design it needs BottomNav so i try to implementing this new material UI (in my project).

I followed this and some tutorial in youtube like this but after i run my apps i got crash. The error log like below:

FATAL EXCEPTION: main
    Process: mobile.android.tribun, PID: 10216
    java.lang.RuntimeException: Unable to start activity ComponentInfo{mobile.android.tribun/com.myapp.app.MainActivity}: android.view.InflateException: Binary XML file line #17: Binary XML file line #17: Error inflating class com.google.android.material.bottomnavigation.BottomNavigationView
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2913)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:6669)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
     Caused by: android.view.InflateException: Binary XML file line #17: Binary XML file line #17: Error inflating class com.google.android.material.bottomnavigation.BottomNavigationView
     Caused by: android.view.InflateException: Binary XML file line #17: Error inflating class com.google.android.material.bottomnavigation.BottomNavigationView
     Caused by: java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Constructor.newInstance0(Native Method)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
        at android.view.LayoutInflater.createView(LayoutInflater.java:647)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:790)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:863)
        at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
        at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:696)
        at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:195)
        at com.tribunnews.app.MainActivity.onCreate(MainActivity.kt:11)
        at android.app.Activity.performCreate(Activity.java:7136)
        at android.app.Activity.performCreate(Activity.java:7127)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:6669)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
     Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x0
        at android.content.res.ResourcesImpl.getValue(ResourcesImpl.java:216)
        at android.content.res.Resources.getColorStateList(Resources.java:1031)
        at android.content.Context.getColorStateList(Context.java:642)
        at androidx.appcompat.content.res.AppCompatResources.getColorStateList(AppCompatResources.java:69)
2021-11-09 10:11:30.262 10216-10216/? E/AndroidRuntime:     at com.google.android.material.navigation.NavigationBarMenuView.createDefaultColorStateList(NavigationBarMenuView.java:376)
        at com.google.android.material.navigation.NavigationBarMenuView.<init>(NavigationBarMenuView.java:96)
        at com.google.android.material.bottomnavigation.BottomNavigationMenuView.<init>(BottomNavigationMenuView.java:49)
        at com.google.android.material.bottomnavigation.BottomNavigationView.createNavigationBarMenuView(BottomNavigationView.java:160)
        at com.google.android.material.navigation.NavigationBarView.<init>(NavigationBarView.java:161)
        at com.google.android.material.bottomnavigation.BottomNavigationView.<init>(BottomNavigationView.java:103)
        at com.google.android.material.bottomnavigation.BottomNavigationView.<init>(BottomNavigationView.java:98)
        at com.google.android.material.bottomnavigation.BottomNavigationView.<init>(BottomNavigationView.java:93)

this is my dependencies (just a part, i take from diff commit, i created with new branch):

apply plugin: 'androidx.navigation.safeargs'

dependencies {

    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'androidx.navigation:navigation-fragment-ktx:2.3.5'
    implementation 'androidx.navigation:navigation-ui-ktx:2.3.5'
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    
    ------
    
    }

and i also followed style based on doc (style.xml).

<style name="ThemeMaterial.App" parent="Theme.MaterialComponents">
        <item name="bottomNavigationStyle">@style/Widget.App.BottomNavigationView</item>
    </style>
    <style name="Widget.App.BottomNavigationView" parent="Widget.MaterialComponents.BottomNavigationView.Colored">
        <item name="materialThemeOverlay">@style/ThemeOverlay.App.BottomNavigationView</item>
    </style>

    <style name="ThemeOverlay.App.BottomNavigationView" parent="">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorOnPrimary">@color/colorSecondaryParapuan</item>
    </style>

then install that style in my activity theme in AndroidManifest

<activity android:name=".MainActivity" android:theme="@style/ThemeMaterial.App" />

My layout like below:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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"
    tools:context=".MainActivity">

    <com.google.android.material.bottomnavigation.BottomNavigationView
        android:id="@+id/bottom_nav_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:menu="@menu/menu_bottom_nav" />

</androidx.constraintlayout.widget.ConstraintLayout>

menu_bottom_nav :

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/firstFragment" android:title="Home" android:icon="@drawable/ic_black_home" />
    <item android:id="@+id/videoFragment" android:title="Video" android:icon="@drawable/ic_live_tv"/>
</menu>

My Activity

class MainActivity : BaseActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    }

    override fun configObjCallback(config: TribunConfig?) {

    }
}

But why my project are not successful like others? do i missed something? please help me

Nanda Z
  • 1,604
  • 4
  • 15
  • 37
  • Can we have a look on your layout file ?? – raphalg Nov 09 '21 at 03:42
  • @adeys sure, i forgot that – Nanda Z Nov 09 '21 at 03:43
  • Thanks. It seems like there's a color resource missing (based on the stack trace). Try adding `Widget.App.BottomNavigationView` as `ThemeOverlay.App.BottomNavigationView` parent theme – raphalg Nov 09 '21 at 03:46
  • yeah, i also guess but i don't know which one. However `@color/colorPrimary` and `@color/colorSecondaryParapuan` are exist in my color.xml – Nanda Z Nov 09 '21 at 03:49
  • What if you removed `parent=""`? – Zain Nov 09 '21 at 03:51
  • @Zain sorry, which `parent`? – Nanda Z Nov 09 '21 at 03:53
  • `Widget.MaterialComponents.BottomNavigationView.Colored` as parent I meant* – raphalg Nov 09 '21 at 03:53
  • in ` – Zain Nov 09 '21 at 03:54
  • @Zain it will red notice, and if i got error build like this ERROR:AAPT: error: resource style/ThemeOverlay.App (aka mobile.android.myapp:style/ThemeOverlay.App) not found. error: failed linking references. – Nanda Z Nov 09 '21 at 03:56
  • Do you use `ThemeOverlay.App.BottomNavigationView` style in your app; what if you removed it for a while – Zain Nov 09 '21 at 04:02
  • @adeys unfortunetelly, still crash in same error – Nanda Z Nov 09 '21 at 04:12
  • @Zain still crash with same crash, omg i am so confused – Nanda Z Nov 09 '21 at 04:24
  • why are you not using Android Studio Build in BottomNavigation. Just create new project of BottomNavigation and compare it with your original project and see what are you missing – Yaqoob Bhatti Nov 09 '21 at 04:25
  • After a look on the material.io documentation, found that your app theme should have `Theme.MaterialComponents.*` as parent. (Note the `*` at the end, maybe you missed it) – raphalg Nov 09 '21 at 04:27
  • omg i found the problem, sorry guys i didn't explain this before. after i checked i override theme in baseActivity. After i changed that with ordinary `AppCompatActivity` the crash are gone. i am so sorry didn't see this. I appreciated your help, attention, and care, thanks @adeys @Zain – Nanda Z Nov 09 '21 at 04:33
  • 1
    It's okay. Glad tou found it. Don't forget to add it as accepted answer so as to close the question – raphalg Nov 09 '21 at 04:36

0 Answers0