вот ошибка E / AndroidRuntime: FATAL EXCEPTION: main Процесс: com.example.jams.socialnetwork, PID: 15878 java.lang.RuntimeException: невозможно запустить действие ComponentInfo {com.example.jams.socialnetwork / com.example.jams.socialnetwork.MainActivity}: java.lang.NullPointerException: попытка вызвать виртуальный метод java.lang.String com. google.firebase.auth.FirebaseUser.getUid () 'для ссылки на нулевой объект в android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2690) в android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2755) в android.app.ActivityThread.-wrap12 (ActivityThread.java) в android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1495) в android.os.Handler.dispatchMessage (Handler.java:102) в android.os.Looper.loop (Looper.java:154) в android.app.ActivityThread.main (ActivityThread.java:6196) в java.lang.reflect.Method.invoke (собственный метод) в com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:888) в com.android.internal.os.ZygoteInit.main (ZygoteInit.java:778)
Вызвано: java.lang.NullPointerException: попытка вызвать виртуальный метод
'java.lang.String com.google.firebase.auth.FirebaseUser.getUid ()' для ссылки на нулевой объект в com.example.jams.socialnetwork.MainActivity.onCreate (MainActivity.java:52) в android.app.Activity.performCreate (Activity.java:6698) в android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1140) в android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2643)
Я перепробовал много вещей, но не могу понять, где я делаю не так
java> пакет com.example.jams.socialnetwork;
import android.content.Intent;
import android.support.annotation.NonNull;
import android.support.design.widget.NavigationView;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
import com.squareup.picasso.Picasso;
import de.hdodenhof.circleimageview.CircleImageView;
public class MainActivity extends AppCompatActivity {
private NavigationView navigationView;
private Toolbar mToolbar;
private DrawerLayout drawerLayout;
private ActionBarDrawerToggle actionBarDrawerToggle;
private RecyclerView postList;
private CircleImageView NavProfileImage;
private TextView NavProfileUserName;
private FirebaseAuth mAuth;
private DatabaseReference UserRef;
String currentUserID;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mAuth = FirebaseAuth.getInstance();
currentUserID = mAuth.getCurrentUser().getUid();
UserRef = FirebaseDatabase.getInstance().getReference().child("Users");
mToolbar = (Toolbar) findViewById(R.id.main_page_toolbar);
setSupportActionBar(mToolbar);
getSupportActionBar().setTitle("Home");
drawerLayout = (DrawerLayout) findViewById(R.id.drawable_layout);
actionBarDrawerToggle = new ActionBarDrawerToggle(MainActivity.this, drawerLayout,R.string.drawer_Open, R.string.drawer_Close);
drawerLayout.addDrawerListener(actionBarDrawerToggle);
actionBarDrawerToggle.syncState();
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
navigationView = (NavigationView) findViewById(R.id.navigation_view);
View navView = navigationView.inflateHeaderView(R.layout.navigation_header);
NavProfileImage = (CircleImageView) navView.findViewById(R.id.nav_profile_image);
NavProfileUserName = (TextView) navView.findViewById(R.id.nav_user_full_name);
UserRef.child(currentUserID).addValueEventListener(new ValueEventListener()
{
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot)
{
if (dataSnapshot.exists())
{
String fullname = dataSnapshot.child("fullname").getValue().toString();
String image = dataSnapshot.child("profileimage").getValue().toString();
NavProfileUserName.setText(fullname);
Picasso.with(MainActivity.this).load(image).placeholder(R.drawable.profile).into(NavProfileImage);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError)
{
}
});
navigationView.setNavigationItemSelectedListener
(new NavigationView.OnNavigationItemSelectedListener()
{
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item)
{
UserMenuSelector(item);
return false;
}
});
}
@Override
protected void onStart()
{
super.onStart();
FirebaseUser currentUser =mAuth.getCurrentUser();
if (currentUser==null)
{
SendUserToLoginActivity();
}
else
{
CheckUserExistence();
}
}
private void CheckUserExistence()
{
final String current_user_id = mAuth.getCurrentUser().getUid();
UserRef.addValueEventListener(new ValueEventListener()
{
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot)
{
if (!dataSnapshot.hasChild(current_user_id))
{
SendUserToSetupActivity();
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError)
{
}
});
}
private void SendUserToSetupActivity()
{
Intent SetupIntent = new Intent(MainActivity.this,SetupActivity.class);
SetupIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(SetupIntent);
finish();
}
private void SendUserToLoginActivity()
{
Intent LoginIntent = new Intent(MainActivity.this,LoginActivity.class);
LoginIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(LoginIntent);
finish();
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
if (actionBarDrawerToggle.onOptionsItemSelected(item))
{
return true;
}
return super.onOptionsItemSelected(item);
}
private void UserMenuSelector(MenuItem item)
{
switch (item.getItemId())
{
case R.id.nav_profile:
Toast.makeText(this,"Profile",Toast.LENGTH_SHORT).show();
break;
case R.id.nav_post:
Toast.makeText(this,"Post",Toast.LENGTH_SHORT).show();
break;
case R.id.nav_home:
Toast.makeText(this,"Home",Toast.LENGTH_SHORT).show();
break;
case R.id.nav_friends:
Toast.makeText(this,"friends",Toast.LENGTH_SHORT).show();
break;
case R.id.nav_find_friends:
Toast.makeText(this,"find friends",Toast.LENGTH_SHORT).show();
break;
case R.id.nav_messages:
Toast.makeText(this,"message",Toast.LENGTH_SHORT).show();
break;
case R.id.nav_settings:
Toast.makeText(this,"Settings",Toast.LENGTH_SHORT).show();
break;
case R.id.nav_logout:
mAuth.signOut();
SendUserToLoginActivity();
break;
}
}
}
я разместил свой код !! пожалуйста, помогите мне с этой проблемой, где я делаю ошибку !!
В какой строке кода возникает эта ошибка? Пожалуйста, ответьте @AlexMamo
в строке 52 этого кода @AlexMamo
Укажите точную строку.
currentUserID = mAuth.getCurrentUser (). getUid (); в строке 52 этот
внутри метода oncreate currentUserID = mAuth.getCurrentUser (). getUid (); эта строка @AlexMamo
mAuth.getCurrentUser() возвращает null. Вы уверены, что прошли аутентификацию?
да. Но проверю еще раз! Тогда я тебе расскажу! В ту погоду я аутентифицирован или нет !!
да, я аутентифицирован !!
Привет, пожалуйста, помогите мне с этой проблемой! Я застрял в этой проблеме уже 3 дня! Пожалуйста, дайте мне знать, где я делаю ошибку !! @AlexMamo
Основная причина сбоя: firebaseauth.getinstance (). Getcurrentuser () возвращает null Поэтому добавьте нулевую проверку перед доступом к firebaseauth.getinstance (). Getcurrentuser ().
Также перепроверьте вашу реализацию firebase с официальной документацией firebase: https://firebase.google.com/docs/auth/android/anonymous-auth
Столбец пользователей не найден в firebase для сбоя вашего приложения.
Каково решение??
Решение мы добавляем столбец пользователей и значение в firebase.
Подскажите пожалуйста подробности ?? Я новичок в этой сфере!
Пожалуйста, разместите свой код в виде текста, а не изображений. Взгляните на stackoverflow.com/help/how-to-ask