android.view.InflationException:二进制XML行#11:对类com.shuhart.stepview.stepview进行膨胀时出错
view.InflationException:Binary XML行#11:Error Explating class com.shuhart.stepview.stepview。已经更新了依赖项,也更新了应用程序。这在更新之前或之后都不起作用。有人能帮我制造很多挫折吗?在网上到处搜索解决方案,但似乎什么都没有发现。提前谢谢。请参阅下面的代码 预订活动:android.view.InflationException:二进制XML行#11:对类com.shuhart.stepview.stepview进行膨胀时出错,android,android-studio,runtime-error,layout-inflater,inflate-exception,Android,Android Studio,Runtime Error,Layout Inflater,Inflate Exception,view.InflationException:Binary XML行#11:Error Explating class com.shuhart.stepview.stepview。已经更新了依赖项,也更新了应用程序。这在更新之前或之后都不起作用。有人能帮我制造很多挫折吗?在网上到处搜索解决方案,但似乎什么都没有发现。提前谢谢。请参阅下面的代码 预订活动: package jod.developer.dyiluckyballsv1; import androidx.annotation.No
package jod.developer.dyiluckyballsv1;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.viewpager.widget.ViewPager;
import android.app.AlertDialog;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.text.TextUtils;
import android.widget.Button;
import android.widget.Toast;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.OnFailureListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.firestore.CollectionReference;
import com.google.firebase.firestore.FirebaseFirestore;
import com.google.firebase.firestore.QueryDocumentSnapshot;
import com.google.firebase.firestore.QuerySnapshot;
import com.shuhart.stepview.StepView;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.util.ArrayList;
import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import dmax.dialog.SpotsDialog;
import jod.developer.dyiluckyballsv1.Adapter.MyViewPagerAdapter;
import jod.developer.dyiluckyballsv1.Common.Common;
import jod.developer.dyiluckyballsv1.Common.NonSwipeViewPager;
import jod.developer.dyiluckyballsv1.Model.Day;
import jod.developer.dyiluckyballsv1.Model.EventBus.ConfirmBookingEvent;
import jod.developer.dyiluckyballsv1.Model.EventBus.DayDoneEvent;
import jod.developer.dyiluckyballsv1.Model.EventBus.DisplayBallNumberEvent;
import jod.developer.dyiluckyballsv1.Model.EventBus.EnableNextButton;
public class BookingActivity extends AppCompatActivity {
AlertDialog dialog;
CollectionReference dayRef;
@BindView(R.id.step_view)
StepView stepView;
@BindView(R.id.view_pager)
NonSwipeViewPager viewPager;
@BindView(R.id.btn_previous_step)
Button btn_previous_step;
@BindView(R.id.btn_next_step)
Button btn_next_step;
//Event
@OnClick (R.id.btn_previous_step)
void previousStep(){
if(Common.step == 3 || Common.step > 0)
{
Common.step--;
viewPager.setCurrentItem(Common.step);
if(Common.step < 3) //Always enable NEXT when Step < 3
{
btn_next_step.setEnabled(true);
setColorButton();
}
}
}
@OnClick(R.id.btn_next_step)
void nextClick(){
if(Common.step < 3 || Common.step == 0)
{
Common.step++; // Increase
if(Common.step == 1) //After choose club
{
if(Common.currentClub != null)
loadDayByClub(Common.currentClub.getClubId());
}
else if(Common.step == 2) //Pick ball number
{
if(Common.currentDay != null)
loadBallNumberOfDay(Common.currentDay.getDayId());
}
else if(Common.step == 3) //Confirm
{
if(Common.currentBallNumber != -1)
confirmBooking();
}
viewPager.setCurrentItem(Common.step);
}
}
private void confirmBooking() {
EventBus.getDefault().postSticky(new ConfirmBookingEvent(true));
}
private void loadBallNumberOfDay(String dayId) {
EventBus.getDefault().postSticky(new DisplayBallNumberEvent(true));
}
private void loadDayByClub(String clubId) {
dialog.show();
//Now select all Days from Club
// /County/Louth/Club/enMwWreJM9lTC9IwWpLT/Days
if(!TextUtils.isEmpty(Common.county)) {
dayRef = FirebaseFirestore.getInstance()
.collection("AllClub")
.document(Common.county)
.collection("Club")
.document(clubId)
.collection("Day");
dayRef.get()
.addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
ArrayList<Day> days = new ArrayList<>();
for(QueryDocumentSnapshot daySnapShot:task.getResult())
{
Day day = daySnapShot.toObject(Day.class);
day.setPassword(""); //Remove password in client app
day.setDayId(daySnapShot.getId()); //Get ID of Day
days.add(day);
}
EventBus.getDefault()
.postSticky(new DayDoneEvent(days));
dialog.dismiss();
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
dialog.dismiss();
}
});
}
}
//Event Bus Convert
@Subscribe(sticky = true, threadMode = ThreadMode.MAIN)
public void buttonNextReceiver(EnableNextButton event)
{
int step = event.getStep();
if(step == 1)
Common.currentClub = event.getClub();
else if(step == 2)
Common.currentDay = event.getDay();
else if(step == 3)
Common.currentBallNumber = event.getBallNumber();
btn_next_step.setEnabled(true);
setColorButton();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_booking);
ButterKnife.bind(BookingActivity.this);
dialog = new SpotsDialog.Builder().setContext(this).setCancelable(false).build();
setupStepView();
setColorButton();
//View
viewPager.setAdapter(new MyViewPagerAdapter(getSupportFragmentManager()));
viewPager.setOffscreenPageLimit(4); //We have 4 fragments so we need to keep state of this 4 screen page
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int i, float v, int il) {
}
@Override
public void onPageSelected(int i) {
//Show step
stepView.go(i, true);
if(i == 0)
btn_previous_step.setEnabled(false);
else
btn_previous_step.setEnabled(true);
//Set disable button next here
btn_next_step.setEnabled(false);
setColorButton();
}
@Override
public void onPageScrollStateChanged(int i) {
}
});
}
private void setColorButton() {
if(btn_next_step.isEnabled())
{
btn_next_step.setBackgroundResource(R.color.colorButton);
}
else
{
btn_next_step.setBackgroundResource(android.R.color.darker_gray);
}
if(btn_previous_step.isEnabled())
{
btn_previous_step.setBackgroundResource(R.color.colorButton);
}
else
{
btn_previous_step.setBackgroundResource(android.R.color.darker_gray);
}
}
private void setupStepView() {
List<String> stepList = new ArrayList<>();
stepList.add("County");
stepList.add("Club");
stepList.add("Number");
stepList.add("Confirm");
stepView.setSteps(stepList);
}
@Override
protected void onStart() {
super.onStart();
EventBus.getDefault().register(this);
}
@Override
protected void onStop() {
super.onStop();
EventBus.getDefault().unregister(this);
}
}
AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="jod.developer.dyiluckyballsv1">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_CALENDAR" />
<uses-permission android:name="android.permission.READ_CALENDAR" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".HistoryActivity" />
<service android:name=".Service.MyFCMService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
<activity android:name=".CartActivity" />
<activity android:name=".BookingActivity" />
<activity android:name=".HomeActivity" />
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
日志:
05-14 18:35:14.174 3510-3510/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: jod.developer.dyiluckyballsv1, PID: 3510
java.lang.RuntimeException: Unable to start activity ComponentInfo{jod.developer.dyiluckyballsv1/jod.developer.dyiluckyballsv1.HomeActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String jod.developer.dyiluckyballsv1.Model.User.getName()' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
at android.app.ActivityThread.access$800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String jod.developer.dyiluckyballsv1.Model.User.getName()' on a null object reference
at jod.developer.dyiluckyballsv1.Fragments.HomeFragment.setUserInformation(HomeFragment.java:504)
at jod.developer.dyiluckyballsv1.Fragments.HomeFragment.onCreateView(HomeFragment.java:402)
at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2963)
at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:518)
at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:282)
at androidx.fragment.app.FragmentStore.moveToExpectedState(FragmentStore.java:112)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1647)
at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3126)
at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:3070)
at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:251)
at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:501)
at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:246)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1236)
at android.app.Activity.performStart(Activity.java:6006)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2288)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
at android.app.ActivityThread.access$800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="jod.developer.dyiluckyballsv1">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_CALENDAR" />
<uses-permission android:name="android.permission.READ_CALENDAR" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".HistoryActivity" />
<service android:name=".Service.MyFCMService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
<activity android:name=".CartActivity" />
<activity android:name=".BookingActivity" />
<activity android:name=".HomeActivity" />
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:4.1.3'
classpath 'com.google.gms:google-services:4.3.5'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
05-14 18:35:14.174 3510-3510/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: jod.developer.dyiluckyballsv1, PID: 3510
java.lang.RuntimeException: Unable to start activity ComponentInfo{jod.developer.dyiluckyballsv1/jod.developer.dyiluckyballsv1.HomeActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String jod.developer.dyiluckyballsv1.Model.User.getName()' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
at android.app.ActivityThread.access$800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String jod.developer.dyiluckyballsv1.Model.User.getName()' on a null object reference
at jod.developer.dyiluckyballsv1.Fragments.HomeFragment.setUserInformation(HomeFragment.java:504)
at jod.developer.dyiluckyballsv1.Fragments.HomeFragment.onCreateView(HomeFragment.java:402)
at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2963)
at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:518)
at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:282)
at androidx.fragment.app.FragmentStore.moveToExpectedState(FragmentStore.java:112)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1647)
at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3126)
at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:3070)
at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:251)
at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:501)
at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:246)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1236)
at android.app.Activity.performStart(Activity.java:6006)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2288)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
at android.app.ActivityThread.access$800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)