Java 当我单击添加时Android应用程序崩溃

Java 当我单击添加时Android应用程序崩溃,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我正在使用Firebase数据库和Android Studio。当我运行应用程序并单击添加食物按钮时,应用程序崩溃,数据库中没有添加任何内容。如果我没有输入食物名称,错误消息将按预期显示 这是我的密码: public class addFood extends AppCompatActivity { //source : https://www.youtube.com/watch?v=EM2x33g4syY&t=415s EditText editTextName; EditText

我正在使用Firebase数据库和Android Studio。当我运行应用程序并单击添加食物按钮时,应用程序崩溃,数据库中没有添加任何内容。如果我没有输入食物名称,错误消息将按预期显示

这是我的密码:

public class addFood extends AppCompatActivity {

//source : https://www.youtube.com/watch?v=EM2x33g4syY&t=415s
EditText editTextName;
EditText editTextBestBefore;
Button buttonAddFood;
Spinner spinnerCategory;

DatabaseReference foodDatabase;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_add_food);

    // source : https://www.youtube.com/watch?v=EM2x33g4syY&t=415s
    foodDatabase = FirebaseDatabase.getInstance().getReference("food");

    editTextName =(EditText)(findViewById(R.id.editTextName));
    editTextBestBefore =(EditText)(findViewById(R.id.editTextBestBefore));
    buttonAddFood =(Button) (findViewById(R.id.buttonAddFood));
    spinnerCategory =(Spinner) (findViewById(R.id.spinnerCategory));

    buttonAddFood.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            addFood();
        }
    });

}

private void addFood()
        //source : https://www.youtube.com/watch?v=EM2x33g4syY&t=415s
{
    String foodName = editTextName.getText().toString().trim();
    String bestBefore = editTextBestBefore.getText().toString().trim();
    String category = spinnerCategory.getSelectedItem().toString();

    if (!TextUtils.isEmpty(foodName)){
        String id = foodDatabase.push().getKey();

        food food = new food(id,foodName, bestBefore, category);

        foodDatabase.child(id).setValue(food);
        Toast.makeText(this, "food added!", Toast.LENGTH_LONG).show();
    }
    else{
        Toast.makeText(this, "Please enter a food name", Toast.LENGTH_LONG).show();
    }
}
}

日志:

01-16 15:28:57.972 27506-27506/com.virtual.A2018冰箱I/FA:应用程序测量正在启动,版本:11020 01-16 15:28:57.973 27506-27506/com.virtual.a2018冰箱I/FA:启用调试日志运行:adb shell setprop log.tag.FA VERBOSE 01-16 15:28:58.032 27506-27506/com.virtual.A2018冰箱V/FA:已启用收集 01-16 15:28:58.033 27506-27506/com.virtual.a2018冰箱V/FA:App-package,谷歌App-id:com.virtual.a2018冰箱,1:203952876063:android:ae6871bb1651394b 01-16 15:28:58.035 27506-27506/com.virtual.A2018冰箱I/FA:要启用更快的调试模式事件日志记录运行: adb shell setprop debug.firebase.analytics.app com.virtual.A2018冰箱 01-16 15:28:58.035 27506-27506/com.virtual.A2018冰箱D/FA:调试级别消息日志记录已启用 01-16 15:28:58.145 27506-27506/com.virtual.a2018冰箱V/FA:注册的活动生命周期回调 01-16 15:28:58.27227506-27625/com.virtual.a2018冰箱V/FA:使用测量服务 01-16 15:28:58.287 27506-27625/com.virtual.A2018冰箱V/FA:连接到远程服务 01-16 15:28:58.348 27506-27625/com.virtual.a2018冰箱V/FA:使用测量服务 01-16 15:28:58.348 27506-27625/com.virtual.a2018冰箱V/FA:连接尝试已在进行中 01-16 15:28:59.474 27506-27506/com.virtual.a2018冰箱V/FA:on活动已创建 01-16 15:29:01.984 27506-27625/com.virtual.A2018冰箱V/FA:使用测量服务 01-16 15:29:01.984 27506-27625/com.virtual.a2018冰箱V/FA:连接尝试已在进行中 01-16 15:29:01.989 27506-27625/com.virtual.a2018冰箱V/FA:活动恢复,时间:329370286 01-16 15:29:01.993 27506-27625/com.virtual.A2018冰箱I/FA:找不到标签管理器,因此将不使用 01-16 15:29:02.001 27506-27625/com.virtual.a2018冰箱D/FA:记录事件(FE):屏幕视图(vs),捆绑[{firebase\u事件来源(\u o)=自动,firebase\u屏幕类(\u sc)=添加食物,firebase\u屏幕id(\u si)=3652847265616890340}] 01-16 15:29:02.030 27506-27625/com.virtual.A2018冰箱V/FA:使用测量服务 01-16 15:29:02.030 27506-27625/com.virtual.a2018冰箱V/FA:连接尝试已在进行中 01-16 15:29:03.231 27506-27625/com.virtual.a2018冰箱D/FA:已连接到远程服务 01-16 15:29:03.232 27506-27625/com.virtual.A2018冰箱V/FA:处理排队服务任务:4 01-16 15:29:03.981 17286-27703/? V/FA-SVC:日志事件:origin=auto,name=screen\u view(\u-vs),params=Bundle[{firebase\u事件\u origin(\u-o)=auto,firebase\u screen\u class(\u-sc)=addFood,firebase\u screen\u-id(\u-si)=3652847265616890340}] 01-16 15:29:04.047 17286-27703/? V/FA-SVC:保存事件、名称、数据大小:屏幕视图(_-vs),52 01-16 15:29:04.057 17286-27703/? V/FA-SVC:Event recorded:Event{appId='com.virtual.a2018fridge',name='screen'u view('u-vs'),params=Bundle[{firebase\u Event\u origin('u-o)=auto,firebase\u screen\u class('u-sc)=addFood,firebase\u screen\u-id('u-si)=3652847265616890340} 01-16 15:29:04.063 17286-27703/? V/FA-SVC:计划在大约毫秒内上载:978689 01-16 15:29:04.097 17286-27703/? V/FA-SVC:使用GcmTaskService计划上载 01-16 15:29:04.098 17286-27703/? V/FA-SVC:使用Gcm调度任务。时间978689 01-16 15:29:04.106 17286-27703/? V/FA-SVC:后台事件处理时间,毫秒:133 01-16 15:29:07.348 27772-27772/? I/FA:应用程序测量正在启动,版本:11020 01-16 15:29:07.349 27772-27772/? I/FA:要启用调试日志记录,请运行:adb shell setprop log.tag.FA VERBOSE 01-16 15:29:07.370 27772-27772/? V/FA:已启用收集 01-16 15:29:07.371 27772-27772/? V/FA:App-package,谷歌App-id:com.whatsapp,1:293955441834:android:7373a2d0bdfa3228 01-16 15:29:07.372 27772-27772/? I/FA:要启用更快的调试模式事件日志记录运行: adb shell setprop debug.firebase.analytics.app com.whatsapp 01-16 15:29:07.372 27772-27772/? D/FA:已启用调试级别消息日志记录 01-16 15:29:07.388 27772-27772/? V/FA:已注册的活动生命周期回调 01-16 15:29:07.415 27772-27818/? V/FA:使用测量服务 01-16 15:29:07.419 27772-27818/? V/FA:连接到远程服务 01-16 15:29:07.439 27772-27818/? V/FA:使用测量服务 01-16 15:29:07.439 27772-27818/? V/FA:连接尝试已在进行中 01-16 15:29:08.026 27772-27818/? D/FA:连接到远程服务 01-16 15:29:08.026 27772-27818/? V/FA:正在处理排队服务任务:2 01-16 15:29:09.150 27506-27625/com.virtual.a2018冰箱V/FA:不活动,断开与服务的连接

                                                         [ 01-16 15:29:09.339 27506:27506 W/         ]
                                                         Unable to open '/system/framework/prcui-config.jar': No such file or directory

01-16 15:29:11.535 17286-27791/?D/FA-SVC:get package replaced intent:com.virtual.a2018fridge

您没有添加用于构建数据库的代码

比如像这样的事情

mRootRef.child("Chat").child(mCurrentUserId).addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

            if(!dataSnapshot.hasChild(mChatUser)){

                Map chatAddMap = new HashMap();
                chatAddMap.put("seen", false);
                chatAddMap.put("timestamp", ServerValue.TIMESTAMP);

                Map chatUserMap = new HashMap();
                chatUserMap.put("Chat/" + mCurrentUserId + "/" + mChatUser, chatAddMap);
                chatUserMap.put("Chat/" + mChatUser + "/" + mCurrentUserId, chatAddMap);

                mRootRef.updateChildren(chatUserMap, new DatabaseReference.CompletionListener() {
                    @Override
                    public void onComplete(DatabaseError databaseError, DatabaseReference databaseReference) {

                        if(databaseError != null){

                            Log.d("CHAT_LOG", databaseError.getMessage().toString());

                        }

                    }
                });

            }

        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });



    mChatSendBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            sendMessage();

        }
    });



}

您必须根据您的要求构建数据库的位置

请共享日志张贴堆栈跟踪。错误是什么?您看到日志了吗?这几乎是不可读的。尝试将其重新格式化一点在代码按钮addFood.setOnClickListener(new View.OnClickListener(){@Override public void onClick(View v){addFood();}}}之前添加此项并根据您的要求更改其值