膨胀底部导航视图时出错
Error when inflating Bottom Navigation View
它在我的 phone of 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" />
这是主要Activity文件
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[=20= 中正常工作]
这里是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>
我已经在 Whosebug 中寻找可能的解决方案,但我无法找到一个
这是 gradle 文件
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.access0(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.access0(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)
XML
中的第 16 行
<android.support.design.widget.BottomNavigationView
Activity
中的第 59 行
setContentView(R.layout.activity_reports);
colors.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>
menu.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"/>
在 api 26 中添加了底部导航
https://developer.android.com/reference/android/support/design/widget/BottomNavigationView
经过12个小时的严谨思考和思考,终于找到了解决方案
我的代码绝对没有问题。
它在可绘制文件夹中。
我在 v24 可绘制文件夹中放置了 2 个图标 PNG,因此它不适用于我检查过的 API23 和 API22。
所以只需将它们放回 Drawable 文件夹中,它就会非常有效。
谢谢大家的帮助。
我遇到了同样的问题,通过从底部导航视图中删除样式属性解决了问题 xml。
style="@style/Widget.MaterialComponents.BottomNavigationView"
我刚刚更改了底部导航 gradle 实现中的版本,并再次在 xml 文件中手动添加了导航栏并分配了所有属性。有效
它在我的 phone of 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" />
这是主要Activity文件
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[=20= 中正常工作]
这里是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>
我已经在 Whosebug 中寻找可能的解决方案,但我无法找到一个
这是 gradle 文件
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.access0(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.access0(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)
XML
中的第 16 行<android.support.design.widget.BottomNavigationView
Activity
中的第 59 行setContentView(R.layout.activity_reports);
colors.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>
menu.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"/>
在 api 26 中添加了底部导航 https://developer.android.com/reference/android/support/design/widget/BottomNavigationView
经过12个小时的严谨思考和思考,终于找到了解决方案
我的代码绝对没有问题。
它在可绘制文件夹中。
我在 v24 可绘制文件夹中放置了 2 个图标 PNG,因此它不适用于我检查过的 API23 和 API22。
所以只需将它们放回 Drawable 文件夹中,它就会非常有效。
谢谢大家的帮助。
我遇到了同样的问题,通过从底部导航视图中删除样式属性解决了问题 xml。
style="@style/Widget.MaterialComponents.BottomNavigationView"
我刚刚更改了底部导航 gradle 实现中的版本,并再次在 xml 文件中手动添加了导航栏并分配了所有属性。有效