我在 android java 上創建了一個包含五個片段的應用程式bottomnavigationview,這在 android 10 和模擬器上運行良好。當我嘗試在 android 6.0.1 上運行時,應用程式崩潰了。
我在互聯網上嘗試了可用的解決方案,但一切都在脈絡中。我被困在這里很長時間了,感謝您對解決方案的任何幫助。
如果需要,可以提供澄清所需的任何其他代碼行。
這是日志貓
2022-06-24 11:12:45.252 29202-29202/com.package.packagename E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.package.packagename, PID: 29202
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.package.packagename/com.package.packagename.activities.HomeActivity}: android.view.InflateException: Binary XML file line #27: Binary XML file line #27: Error inflating class com.google.android.material.bottomnavigation.BottomNavigationView
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2492)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2552)
at android.app.ActivityThread.access$1000(ActivityThread.java:166)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1399)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5541)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:853)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:737)
Caused by: android.view.InflateException: Binary XML file line #27: Binary XML file line #27: Error inflating class com.google.android.material.bottomnavigation.BottomNavigationView
at android.view.LayoutInflater.inflate(LayoutInflater.java:545)
at android.view.LayoutInflater.inflate(LayoutInflater.java:429)
at com.package.packagename.databinding.ActivityHomeBinding.inflate(ActivityHomeBinding.java:64)
at com.package.packagename.databinding.ActivityHomeBinding.inflate(ActivityHomeBinding.java:58)
at com.package.packagename.activities.HomeActivity.onCreate(HomeActivity.java:30)
at android.app.Activity.performCreate(Activity.java:6308)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1114)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2445)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2552)
at android.app.ActivityThread.access$1000(ActivityThread.java:166)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1399)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5541)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:853)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:737)
Caused by: android.view.InflateException: Binary XML file line #27: Error inflating class com.google.android.material.bottomnavigation.BottomNavigationView
at android.view.LayoutInflater.createView(LayoutInflater.java:654)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:809)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:749)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:880)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:843)
at android.view.LayoutInflater.inflate(LayoutInflater.java:521)
at android.view.LayoutInflater.inflate(LayoutInflater.java:429)
at com.package.packagename.databinding.ActivityHomeBinding.inflate(ActivityHomeBinding.java:64)
at com.package.packagename.databinding.ActivityHomeBinding.inflate(ActivityHomeBinding.java:58)
at com.package.packagename.activities.HomeActivity.onCreate(HomeActivity.java:30)
at android.app.Activity.performCreate(Activity.java:6308)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1114)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2445)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2552)
at android.app.ActivityThread.access$1000(ActivityThread.java:166)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1399)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5541)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:853)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:737)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.newInstance(Native Method)
at android.view.LayoutInflater.createView(LayoutInflater.java:628)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:809)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:749)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:880)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:843)
at android.view.LayoutInflater.inflate(LayoutInflater.java:521)
at android.view.LayoutInflater.inflate(LayoutInflater.java:429)
at com.package.packagename.databinding.ActivityHomeBinding.inflate(ActivityHomeBinding.java:64)
at com.package.packagename.databinding.ActivityHomeBinding.inflate(ActivityHomeBinding.java:58)
at com.package.packagename.activities.HomeActivity.onCreate(HomeActivity.java:30)
at android.app.Activity.performCreate(Activity.java:6308)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1114)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2445)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2552)
at android.app.ActivityThread.access$1000(ActivityThread.java:166)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1399)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5541)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:853)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:737)
Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f070069
at android.content.res.Resources.getValue(Resources.java:1375)
at android.content.res.VivoResources.getValue(VivoResources.java:191)
at androidx.appcompat.widget.ResourceManagerInternal.loadDrawableFromDelegates(ResourceManagerInternal.java:256)
at androidx.appcompat.widget.ResourceManagerInternal.getDrawable(ResourceManagerInternal.java:143)
at androidx.appcompat.widget.ResourceManagerInternal.getDrawable(ResourceManagerInternal.java:136)
at androidx.appcompat.content.res.AppCompatResources.getDrawable(AppCompatResources.java:66)
at androidx.appcompat.view.menu.MenuItemImpl.getIcon(MenuItemImpl.java:505)
at com.google.android.material.navigation.NavigationBarItemView.initialize(NavigationBarItemView.java:196)
at com.google.android.material.navigation.NavigationBarMenuView.buildMenuView(NavigationBarMenuView.java:707)
at com.google.android.material.navigation.NavigationBarPresenter.updateMenuView(NavigationBarPresenter.java:72)
at com.google.android.material.navigation.NavigationBarView.inflateMenu(NavigationBarView.java:386)
at com.google.android.material.navigation.NavigationBarView.<init>(NavigationBarView.java:280)
at com.google.android.material.bottomnavigation.BottomNavigationView.<init>(BottomNavigationView.java:108)
at com.google.android.material.bottomna
這是HomeActivity.java
public class HomeActivity extends AppCompatActivity {
private ActivityHomeBinding binding;
Fragment fragment;
@SuppressLint("NonConstantResourceId")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = ActivityHomeBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
Toolbar toolbar = findViewById(R.id.toolbar);
toolbar.setTitle("BIKE TAXI ADMIN");
setSupportActionBar(toolbar);
BottomNavigationView bottomNavigationView = findViewById(R.id.bottomNavigationView);
bottomNavigationView.setSelectedItemId(R.id.home);
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new HomeFragment()).commit();
bottomNavigationView.setOnItemSelectedListener(item -> {
switch (item.getItemId()) {
case R.id.home:
//toolbar.setTitle("Shop");
fragment = new HomeFragment();
loadFragment(fragment);
return true;
case R.id.offer:
// toolbar.setTitle("My Gifts");
fragment = new OffersFragment();
loadFragment(fragment);
return true;
case R.id.reviews:
// toolbar.setTitle("My Gifts");
fragment = new ReviewsFragment();
loadFragment(fragment);
return true;
case R.id.notifications:
// toolbar.setTitle("Cart");
fragment = new NotificationsFragment();
loadFragment(fragment);
return true;
case R.id.earnings:
// toolbar.setTitle("Profile");
fragment = new EarningsFragment();
loadFragment(fragment);
return true;
}
return false;
});
}
private void loadFragment(Fragment fragment) {
// load fragment
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_container, fragment);
transaction.addToBackStack(null);
transaction.commit();
}
這是activity_home.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@ id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/page_gradient">
<com.google.android.material.appbar.AppBarLayout
android:id="@ id/appBarLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/MyAppTheme.AppBarOverlay">
<include
android:id="@ id/toolbar"
layout="@layout/toolbar_material" />
</com.google.android.material.appbar.AppBarLayout>
<FrameLayout
android:layout_below="@id/appBarLayout"
android:id="@ id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/bottomNavigationView" />
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@ id/bottomNavigationView"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_alignParentBottom="true"
android:background="@drawable/nav_background"
app:itemIconTint="@color/nav_color"
app:itemTextColor="@color/nav_color"
app:menu="@menu/bottom_nav_menu" />
</RelativeLayout>
uj5u.com熱心網友回復:
您的問題出在此處Resources$NotFoundException-您可能正在使用一些圖示,BottomNavigationView并且您沒有所有密度變體。例如,您有一些圖示drawable-hdpi,應用程式可以在具有 HDPI 螢屏的設備/模擬器上運行,但在 XXDPI 上崩潰,因為drawable-xxhdpi. 無論作業系統版本
也有可能出現與其他資源相關的類似問題,例如文本 - 你已經翻譯了一些文本values-en/strings.xml,但默認情況下沒有等效的行values/strings.xml- 應用程式在英語設備上作業,在其他設備上崩潰
由于一般情況,Resources$NotFoundException我建議首先檢查您的所有資源
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/497178.html
