Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.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
Android应用程序在使用java代码的emulator中崩溃_Java_Android_Android Studio_Crash_Bottomnavigationview - Fatal编程技术网

Android应用程序在使用java代码的emulator中崩溃

Android应用程序在使用java代码的emulator中崩溃,java,android,android-studio,crash,bottomnavigationview,Java,Android,Android Studio,Crash,Bottomnavigationview,我的android应用程序在emulator中崩溃。应用程序未在emulator中打开。我正在使用java。在我将底部导航添加到应用程序之前,它工作得非常好。请把我的问题整理一下,因为我是这个领域的新手。下面是我主要活动的代码 package com.example.bottomnavigation; import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; i

我的android应用程序在emulator中崩溃。应用程序未在emulator中打开。我正在使用java。在我将底部导航添加到应用程序之前,它工作得非常好。请把我的问题整理一下,因为我是这个领域的新手。下面是我主要活动的代码

package com.example.bottomnavigation;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.MenuItem;
import android.view.View;
import android.widget.ImageView;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.FragmentTransaction;
import com.example.bottomnavigation.databinding.ActivityMainBinding;
import com.google.android.material.bottomnavigation.BottomNavigationView;
public class MainActivity extends AppCompatActivity {
ActivityMainBinding binding;
ImageView picture, video, message, mail;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    binding = ActivityMainBinding.inflate(getLayoutInflater());
    setContentView(binding.getRoot());
    getSupportActionBar().hide();
    binding.bottomNav.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
        @Override
        public boolean onNavigationItemSelected(@NonNull MenuItem item) {
            switch (item.getItemId()){
                case R.id.first:
                    FragmentTransaction firsttrans = getSupportFragmentManager().beginTransaction();
                    firsttrans.replace(R.id.frame, new HomeFragment());
                    firsttrans.commit();
                    break;
                case R.id.search:
                    FragmentTransaction searchtrans = getSupportFragmentManager().beginTransaction();
                    searchtrans.replace(R.id.frame, new SearchFragment());
                    searchtrans.commit();
                    break;
                case R.id.exit:
                    new AlertDialog.Builder(MainActivity.this)
                            .setTitle("Exit")
                            .setIcon(R.drawable.exit)
                            .setMessage("Are you sure you want to exit")
                            .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                    finishAffinity();
                                }
                            }).show();

            }
            return true;
        }
    });
    picture = findViewById(R.id.arham);
    picture.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(MainActivity.this, Pictures.class);
            startActivity(intent);
        }
    });
}
}

这是航海日志

2021-04-05 12:35:38.662 19375-19375/? E/ottomnavigatio: Unknown bits set in runtime_flags: 0x8000
2021-04-05 12:35:40.544 19375-19375/? E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.bottomnavigation, PID: 19375
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.bottomnavigation/com.example.bottomnavigation.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void androidx.appcompat.app.ActionBar.hide()' on a null object reference
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3270)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016)
        at android.os.Handler.dispatchMessage(Handler.java:107)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7356)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void androidx.appcompat.app.ActionBar.hide()' on a null object reference
        at com.example.bottomnavigation.MainActivity.onCreate(MainActivity.java:27)
        at android.app.Activity.performCreate(Activity.java:7802)
        at android.app.Activity.performCreate(Activity.java:7791)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1299)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3245)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409) 
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83) 
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016) 
        at android.os.Handler.dispatchMessage(Handler.java:107) 
        at android.os.Looper.loop(Looper.java:214) 
        at android.app.ActivityThread.main(ActivityThread.java:7356) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930) 

正在引发异常,因为您正在对
null
引用调用
hide()
,该引用指向
ActionBar
。假设这是相关代码,则发生在此行:

    getSupportActionBar().hide();
如果您阅读
getSupportActionBar()
的javadocs(and),您将看到如果活动没有操作栏,它将返回
null
。这一定发生在这里

(那么,为什么你的应用程序在没有活动栏的情况下试图隐藏活动栏??)

看来解决办法是删除有问题的行。或者,如果您的应用程序可能有一个操作栏,请将其更改为:

    ActionBar bar = getSupportActionBar();
    if (bar != null) {
        bar.hide();
    }

也从logcat添加日志。检查logcat,它将显示代码的确切中断位置,2021-04-05 11:37:30.036 2115-2149/?E/AppIdleHistory:为用户0 2021-04-05 11:57:53.351 2115-2149/写入应用程序空闲文件时出错?E/AppIdleHistory:为用户0写入应用程序空闲文件时出错检查是否有一长段红线,在其中可以找到蓝色的类名现在还有另一个错误2021-04-05 12:29:19.869 1774-2466/?E/GnssHAL_gns界面:gnssSvStatusCb:b:input svInfo.flags是8保持日志猫打开尝试重现该错误在那一刻,您将看到一长段红线。