Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 致命异常:android studio中的主要错误_Java_Android_Android Studio - Fatal编程技术网

Java 致命异常:android studio中的主要错误

Java 致命异常:android studio中的主要错误,java,android,android-studio,Java,Android,Android Studio,我最近更新了代码并运行,只是为了查看下一秒应用程序启动和关闭时出现的错误。 以前的版本运行正常更新后我遇到问题 08-16 16:23:29.883 13995-13995/?E/AndroidRuntime:致命异常:主 流程:com.example.hemanth.anew,PID:13995 java.lang.RuntimeException:无法启动活动 ComponentInfo{com.example.hemanth.anew/com.example.hemanth.anew。 家

我最近更新了代码并运行,只是为了查看下一秒应用程序启动和关闭时出现的错误。 以前的版本运行正常更新后我遇到问题

08-16 16:23:29.883 13995-13995/?E/AndroidRuntime:致命异常:主 流程:com.example.hemanth.anew,PID:13995 java.lang.RuntimeException:无法启动活动 ComponentInfo{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.getbottomNavigationItemView(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>

setupBottomNavigationView()
方法中有一个
NullPointerException

似乎未检索到
bottomNavigationViewEx

这一行似乎导致了
NullPointerException

BottomNavigationViewHelper.setupBottomNavigationView(bottomNavigationViewEx);
您确定
bottomNavigationViewEx
具有一些有效值吗

编辑:

好吧,我知道错误是什么了。我试过你的代码,我发现它在编译DK27之前工作得很好。你再往上走,也就是说,到现在为止是28,你会得到一个错误。这是因为图书馆的作者已经为26年前建造了图书馆。它在27上工作,因为他用于与27兼容的代码没有太多更改。但当28号出来时,它没有得到支持。作者必须更新SDK 28的库。您还剩下以下选项:

  • 或者降级您的项目以使用BottomNavigationViewEx版本(代码为SDK 26,但SDK 27也可以正常工作)
  • 使用除BottomNavigationViewEx以外的其他项目
  • 请BottomNavigationViewEx的开发人员升级他的项目
  • 将BottomNavigationViewEx导入项目并重写有问题的方法 你自己
检查此示例:

第一步。将其添加到存储库末尾的root build.gradle中:

allprojects {
repositories {
    ...
    maven { url "https://jitpack.io" }
}
<repositories>
 <repository>
    <id>jitpack.io</id>
    <url>https://jitpack.io</url>
 </repository>
</repositories>
}

第二步。添加依赖项

compile 'com.github.ittianyu:BottomNavigationViewEx:1.1.2'
<dependency>
 <groupId>com.github.ittianyu</groupId>
 <artifactId>BottomNavigationViewEx</artifactId>
 <version>1.1.2</version>
</dependency>
对于Maven:

步骤13。将其添加到存储库末尾的root build.gradle中:

allprojects {
repositories {
    ...
    maven { url "https://jitpack.io" }
}
<repositories>
 <repository>
    <id>jitpack.io</id>
    <url>https://jitpack.io</url>
 </repository>
</repositories>
步骤8.禁用所有动画

bnve.enableAnimation(false);
bnve.enableShiftingMode(false);
bnve.enableItemShiftingMode(false);
步骤9.使用ViewPager绑定

// set adapter
adapter = new VpAdapter(getSupportFragmentManager(), fragments);
bind.vp.setAdapter(adapter);

// binding with ViewPager
bind.bnve.setupWithViewPager(bind.vp);
步骤10.前进

如果您使用的是ProGuard,则可能需要添加以下选项:

-keep public class android.support.design.widget.BottomNavigationView { *; }
-keep public class android.support.design.internal.BottomNavigationMenuView { *; }
-keep public class android.support.design.internal.BottomNavigationPresenter { *; }
-keep public class android.support.design.internal.BottomNavigationItemView { *; }

如果不是静态的,则必须创建BottomNavigationViewHelper类的实例。As Null指针异常从那里启动,这是因为,如果BottomNavigationViewHelper未初始化。所以,用这个更新你的代码,看看错误发生了

   private void setupBottomNavigationView(){
        Log.d(TAG, "setupBottomNavigationView: setting up BottomNavigationView");
        BottomNavigationViewEx bottomNavigationViewEx = (BottomNavigationViewEx) findViewById(R.id.bottomNavViewBar);
BottomNavigationViewHelper helper=new BottomNavigationViewHelper();
helper.setupBottomNavigationView(bottomNavigationViewEx);

      }

行BottomNavigationViewHelper.setupBottomNavigationView(bottomNavigationViewEx)中的NullPointerException;您能告诉我们您的XML布局文件是什么样子的吗?(layout.activity\u home)我已经更新了activity\u home.xml文件,请检查是的,它会。我已经更新了BottomNavigationViewHelper.java的代码。请提供帮助。您可以在xml中发布您的xml和app:menu中指定的菜单文件吗?因为我认为错误在于菜单文件是空的。如果仔细查看,GetBottomNavigationItemView()会失败,这是一个返回按钮的函数。我已经更新了菜单文件,请随意查看。您发布了worng xml文件。请
// set adapter
adapter = new VpAdapter(getSupportFragmentManager(), fragments);
bind.vp.setAdapter(adapter);

// binding with ViewPager
bind.bnve.setupWithViewPager(bind.vp);
-keep public class android.support.design.widget.BottomNavigationView { *; }
-keep public class android.support.design.internal.BottomNavigationMenuView { *; }
-keep public class android.support.design.internal.BottomNavigationPresenter { *; }
-keep public class android.support.design.internal.BottomNavigationItemView { *; }
   private void setupBottomNavigationView(){
        Log.d(TAG, "setupBottomNavigationView: setting up BottomNavigationView");
        BottomNavigationViewEx bottomNavigationViewEx = (BottomNavigationViewEx) findViewById(R.id.bottomNavViewBar);
BottomNavigationViewHelper helper=new BottomNavigationViewHelper();
helper.setupBottomNavigationView(bottomNavigationViewEx);

      }