【发布时间】:2018-08-16 11:12:09
【问题描述】:
我最近更新了代码并运行只是为了在应用程序在下一秒启动和关闭的位置看到此错误。 以前的版本运行正常我在更新后遇到了这个问题。
08-16 16:23:29.883 13995-13995/? E/AndroidRuntime: 致命异常: main 进程:com.example.hemanth.anew,PID:13995 java.lang.RuntimeException:无法启动活动 组件信息{com.example.hemanth.anew/com.example.hemanth.anew. 家庭活动}: java.lang.NullPointerException:尝试在空对象上调用虚拟方法“java.lang.Class java.lang.Object.getClass()” 参考 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2358) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2420) 在 android.app.ActivityThread.access$900(ActivityThread.java:154) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1321) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:135) 在 android.app.ActivityThread.main(ActivityThread.java:5292) 在 java.lang.reflect.Method.invoke(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:372) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699) 原因:java.lang.NullPointerException:尝试在 null 上调用虚拟方法“java.lang.Class java.lang.Object.getClass()” 对象引用 在 com.ittianyu.bottomnavigationviewex.BottomNavigationViewEx.getBottomNavigationItemViews(BottomNavigationViewEx.java:569) 在 com.ittianyu.bottomnavigationviewex.BottomNavigationViewEx.enableAnimation(BottomNavigationViewEx.java:341) 在 com.example.hemanth.anew.Utils.BottomNavigationViewHelper.setupBottomNavigationView(BottomNavigationViewHelper.java:11) 在 com.example.hemanth.anew.HomeActivity.setupBottomNavigationView(HomeActivity.java:25) 在 com.example.hemanth.anew.HomeActivity.onCreate(HomeActivity.java:19) 在 android.app.Activity.performCreate(Activity.java:5990) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2311) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2420) 在 android.app.ActivityThread.access$900(ActivityThread.java:154) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1321) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:135) 在 android.app.ActivityThread.main(ActivityThread.java:5292) 在 java.lang.reflect.Method.invoke(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:372) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)
这是我的主页活动代码:
package com.example.hemanth.anew;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import com.example.hemanth.anew.Utils.BottomNavigationViewHelper;
import com.ittianyu.bottomnavigationviewex.BottomNavigationViewEx;
public class HomeActivity extends AppCompatActivity {
private static final String TAG = "HomeActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
Log.d(TAG, "onCreate: starting.");
setupBottomNavigationView();
}
private void setupBottomNavigationView(){
Log.d(TAG, "setupBottomNavigationView: setting up BottomNavigationView");
BottomNavigationViewEx bottomNavigationViewEx = (BottomNavigationViewEx) findViewById(R.id.bottomNavViewBar);
BottomNavigationViewHelper.setupBottomNavigationView(bottomNavigationViewEx);
}
}
有人可以帮我克服这个错误吗? 检查这个 BottomNavigationViewHelper.java 文件:
package com.example.hemanth.anew.Utils;
import android.annotation.SuppressLint;
import android.util.Log;
import com.ittianyu.bottomnavigationviewex.BottomNavigationViewEx;
public class BottomNavigationViewHelper {
private static final String TAG = "BottomNavigationViewHel";
@SuppressLint("LongLogTag")
public static void setupBottomNavigationView(BottomNavigationViewEx
bottomNavigationViewEx){
Log.d(TAG, "setupBottomNavigationView: setting up BottomNavigationView");
bottomNavigationViewEx.enableAnimation(false);
bottomNavigationViewEx.enableItemShiftingMode(false);
bottomNavigationViewEx.enableShiftingMode(false);
bottomNavigationViewEx.setTextVisibility(false);
}
}
这是菜单部分下的xml文件
<merge xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_alignParentBottom="true">
<com.ittianyu.bottomnavigationviewex.BottomNavigationViewEx
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/bottomNavViewBar"
android:background="@drawable/white_grey_border_top"
app:menu="@menu/bottom_navigation_menu">
</com.ittianyu.bottomnavigationviewex.BottomNavigationViewEx>
</RelativeLayout>
</merge>
这里是 activity_home.xml 文件
<?xml version="1.0" encoding="utf-8"?>
<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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".HomeActivity">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- top toolbar -->
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/relLayout1">
<include layout="@layout/layout_top_tabs"/>
</RelativeLayout>
<!-- Middle section (body) -->
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/relLayout2"
android:layout_below="@+id/relLayout1">
<include layout="@layout/layout_center_viewpager"/>
</RelativeLayout>
<!-- bottom navigation -->
<include layout="@layout/layout_bottom_navigation_view"/>
</RelativeLayout>
</android.support.design.widget.CoordinatorLayout>
这里是 bottom_navigation_menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/ic_house"
android:icon="@drawable/ic_house"
android:title="">
</item>
<item
android:id="@+id/ic_search"
android:icon="@drawable/ic_search"
android:title="">
</item>
<item
android:id="@+id/ic_circle"
android:icon="@drawable/ic_circle"
android:title="">
</item>
<item
android:id="@+id/ic_alert"
android:icon="@drawable/ic_alert"
android:title="">
</item>
<item
android:id="@+id/ic_android"
android:icon="@drawable/ic_android"
android:title="">
</item>
</menu>
感谢所有答案,我在最新版本的 android studio 中找到了解决问题的简单方法。它是这样的:将其添加到 BotttomNavigationView.xml 文件中
app:labelVisibilityMode="unlabeled"
【问题讨论】:
-
NullPointerException in line BottomNavigationViewHelper.setupBottomNavigationView(bottomNavigationViewEx);
-
你能告诉我们你的 XML 布局文件是什么样的吗? (layout.activity_home)
-
我已经更新了 activity_home.xml 文件,请检查
标签: java android android-studio