java.lang.NoSuchMethodException:android.os.MessageQueue#enableMonitor()

java.lang.NoSuchMethodException:android.os.MessageQueue#enableMonitor(),java,android,firebase,Java,Android,Firebase,更新的问题 我有一个启动器活动UserEmailAuth,它有一个按钮来处理Firebase的GoogleSignIn用户登录。当我尝试将UserEmailAuth设置为LAUNCHER活动时,应用程序不会通过以下任何方法启动:USB安装、Emulator或生成的APK 但是,有趣的是,当我绕过用户登录并将我的MainActivity作为启动程序活动,然后从MainActivity按LogOut时,它会被重定向回UserEmailAuth,从那里可以正常工作 以下是跟踪,它不是一个错误,无论使用

更新的问题

我有一个启动器活动
UserEmailAuth
,它有一个按钮来处理Firebase的
GoogleSignIn
用户登录。当我尝试将
UserEmailAuth
设置为
LAUNCHER
活动时,应用程序不会通过以下任何方法启动:USB安装、Emulator或生成的APK

但是,有趣的是,当我绕过用户登录并将我的
MainActivity
作为启动程序活动,然后从
MainActivity
LogOut
时,它会被重定向回
UserEmailAuth
,从那里可以正常工作

以下是跟踪,它不是一个错误,无论使用旁路方法还是原始方法都会生成

W/ReflectionUtils: java.lang.NoSuchMethodException: android.os.MessageQueue#enableMonitor()#bestmatch
        at miui.util.ReflectionUtils.findMethodBestMatch(ReflectionUtils.java:338)
        at miui.util.ReflectionUtils.findMethodBestMatch(ReflectionUtils.java:375)
        at miui.util.ReflectionUtils.callMethod(ReflectionUtils.java:800)
        at miui.util.ReflectionUtils.tryCallMethod(ReflectionUtils.java:818)
        at android.os.BaseLooper.enableMonitor(BaseLooper.java:47)
        at android.os.Looper.prepareMainLooper(Looper.java:112)
        at android.app.ActivityThread.main(ActivityThread.java:6371)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:930)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:820)
V/BoostFramework: BoostFramework() : mPerf = com.qualcomm.qti.Performance@267c3e2
W/System: ClassLoader referenced unknown path: /data/app/com.bytebeetech.wildtripurafoundation-2/lib/arm64
W/ResourceType: No package identifier when getting name for resource number 0x00000000
W/DynamiteModule: Local module descriptor class for com.google.firebase.auth not found.
I/FirebaseInitProvider: FirebaseApp initialization successful
W/DynamiteModule: Local module descriptor class for com.google.firebase.auth not found.
I/FirebaseAuth: [FirebaseAuth:] Preparing to create service connection to gms implementation
W/ResourceType: No package identifier when getting name for resource number 0x00000000
W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter androidx.vectordrawable.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable
D/AccessibilityManager: current package=com.bytebeetech.wildtripurafoundation, accessibility manager mIsFinalEnabled=false, mOptimizeEnabled=false, mIsUiAutomationEnabled=false, mIsInterestedPackage=false
I/art: Rejecting re-init on previously-failed class java.lang.Class<androidx.core.view.ViewCompat$2>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/view/View$OnUnhandledKeyEventListener;
        at void androidx.core.view.ViewCompat.setOnApplyWindowInsetsListener(android.view.View, androidx.core.view.OnApplyWindowInsetsListener) (ViewCompat.java:2421)
        at android.view.ViewGroup androidx.appcompat.app.AppCompatDelegateImpl.createSubDecor() (AppCompatDelegateImpl.java:779)
        at void androidx.appcompat.app.AppCompatDelegateImpl.ensureSubDecor() (AppCompatDelegateImpl.java:659)
I/art:     at void androidx.appcompat.app.AppCompatDelegateImpl.setContentView(int) (AppCompatDelegateImpl.java:552)
        at void androidx.appcompat.app.AppCompatActivity.setContentView(int) (AppCompatActivity.java:161)
I/art:     at void com.bytebeetech.wildtripurafoundation.user.activities.UserEmailAuthentication.onCreate(android.os.Bundle) (UserEmailAuthentication.java:60)
        at void android.app.Activity.performCreate(android.os.Bundle) (Activity.java:6854)
I/art:     at void android.app.Instrumentation.callActivityOnCreate(android.app.Activity, android.os.Bundle) (Instrumentation.java:1119)
        at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:2709)
        at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:2817)
        at void android.app.ActivityThread.-wrap12(android.app.ActivityThread, android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:-1)
ProgressUtility.java

public class UserEmailAuthentication extends AppCompatActivity {

    private FirebaseAuth firebaseAuth;
    private FirebaseFirestore db = FirebaseFirestore.getInstance();

    private static final int RC_SIGN_IN = 101;

    public static final String SHARED_PREFS = "sharedPreferences";
    public static final String IS_ADMIN = "is_admin";

    public String is_admin;

    Button signUpButton;
    GoogleSignInOptions gso;
    GoogleSignInClient mGoogleSignInClient;

    UserUtility userUtility = new UserUtility(UserEmailAuthentication.this);

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_user_email_authentication);
        firebaseAuth = FirebaseAuth.getInstance();

        init();
        // Configure Google Sign In
        GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                .requestIdToken(getString(R.string.default_web_client_id))
                .requestEmail()
                .build();
        // Build a GoogleSignInClient with the options specified by gso.
        mGoogleSignInClient = GoogleSignIn.getClient(this, gso);
        View view = findViewById(R.id.myProgressButton);
        view.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (userUtility.checkInternetConnection(getApplicationContext())) {
                    ProgressUtility progressUtility = new ProgressUtility(getApplicationContext(), v);
                    progressUtility.buttonActivated();
                    signIn();
                } else {
                    userUtility.showSnackbar("You are not connected to the INTERNET", v, getApplicationContext());
                }
            }
        });
    }

    @Override
    protected void onStart() {
        super.onStart();
        checkUserProfile(firebaseAuth);
    }


    private void signIn() {
        Log.d("Inside", "signIn: ");
        Intent signInIntent = mGoogleSignInClient.getSignInIntent();
        startActivityForResult(signInIntent, RC_SIGN_IN);
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        // Result returned from launching the Intent from GoogleSignInApi.getSignInIntent(...);
        if (requestCode == RC_SIGN_IN) {
            Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data);
            try {
                GoogleSignInAccount account = task.getResult(ApiException.class);
                Log.d("Inside", "onActivityResult: ");
                firebaseAuthWithGoogle(account.getIdToken());
            } catch (ApiException e) {
                Toast.makeText(this, "SignIn Failed, Please Try Again", Toast.LENGTH_LONG).show();
                startActivity(new Intent(UserEmailAuthentication.this, UserEmailAuthentication.class));
                finish();
            }
        }
    }

    private void firebaseAuthWithGoogle(String idToken) {
        // SHOW PROGRESS BAR
        AuthCredential credential = GoogleAuthProvider.getCredential(idToken, null);
        firebaseAuth.signInWithCredential(credential)
                .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                    @Override
                    public void onComplete(@NonNull Task<AuthResult> task) {
                        if (task.isSuccessful()) {
                            checkUserProfile(firebaseAuth);
                        } else {
                            Log.d("---------------", "------------------------");
                            Log.d("Error ","Message: "+task.getException());
                            Log.d("---------------", "------------------------");
                        }
                    }
                    // HIDE PROGRESS BAR
                });
    }

    private void checkUserProfile(FirebaseAuth firebaseAuth) {
        final FirebaseUser currentFirebaseUser = firebaseAuth.getCurrentUser();
        if (currentFirebaseUser != null) {
            String user_id = currentFirebaseUser.getEmail();
            db.collection("users").document(user_id).get()
                    .addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
                        @Override
                        public void onSuccess(DocumentSnapshot documentSnapshot) {
                            if (documentSnapshot.exists()) {
                                String is_admin = documentSnapshot.getString("is_admin");
                                saveSharedData(is_admin);
                                if(is_admin.equals("true")) {
                                    Intent intent = new Intent(UserEmailAuthentication.this, AdminActivity.class);
                                    View view  = findViewById(R.id.myProgressButton);
                                    ProgressUtility progressUtility = new ProgressUtility(getApplicationContext(), view);
                                    progressUtility.buttonFinished();
                                    Handler handler = new Handler();
                                    handler.postDelayed(new Runnable() {
                                        @Override
                                        public void run() {
                                            startActivity(intent);
                                            finish();
                                        }
                                    }, 3000);

                                } else if(is_admin.equals("false")) {
                                    Intent intent = new Intent(UserEmailAuthentication.this, MainActivity.class);
                                    startActivity(intent);
                                    finish();
                                }
                            } else {
                                //String is_admin = documentSnapshot.getString("is_admin");
                                //saveSharedData(is_admin);
                                String user_email = currentFirebaseUser.getEmail();
                                String user_photo_url = currentFirebaseUser.getPhotoUrl().toString();
                                Intent intent = new Intent(UserEmailAuthentication.this, UserDataAuthentication.class);
                                startActivity(intent);
                                Toast.makeText(UserEmailAuthentication.this, "Passing Email: " + user_email, Toast.LENGTH_SHORT).show();
                                finish();
                            }
                        }
                    })
                    .addOnFailureListener(new OnFailureListener() {
                        @Override
                        public void onFailure(@NonNull Exception e) {
                            Toast.makeText(UserEmailAuthentication.this, "Error: " + e.getMessage(), Toast.LENGTH_SHORT).show();
                        }
                    });
        } else {
            Toast.makeText(this, "Please SignIn", Toast.LENGTH_SHORT).show();
        }
    }

    public void saveSharedData(String is_admin) {
        SharedPreferences sharedPreferences = getSharedPreferences(SHARED_PREFS, MODE_PRIVATE);
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putString(IS_ADMIN, is_admin);
        editor.apply();
    }

}
public class ProgressUtility {

    private MaterialCardView materialCardView;
    private ProgressBar progressBar;
    private ConstraintLayout constraintLayout;
    private TextView textView;

    Animation fadeIn;

    public ProgressUtility(Context context, View view) {
        materialCardView = view.findViewById(R.id.cardViewProgressBtn);
        constraintLayout = view.findViewById(R.id.constraintLayoutProgressBtn);
        progressBar = view.findViewById(R.id.progressBar2);
        textView = view.findViewById(R.id.msgText);
    }

    public void buttonActivated() {
        progressBar.setVisibility(View.VISIBLE);
        textView.setText("Please Wait...");
    }

    public void buttonFinished() {
        constraintLayout.setBackgroundColor(materialCardView.getResources().getColor(R.color.colorPrimaryDark));
        progressBar.setVisibility(View.GONE);
        textView.setText("Done");
    }
}

progress\u btn\u layout.xml


user\u email\u auth.xml


这是启动布局的类,它有一个Google登录按钮。即使我删除了sign选项并实现了一个简单的Toast,错误也是一样的

我还使缓存失效,重新启动、清理和重建,因为我不知道它来自哪里

我甚至不知道是因为Firebase版本冲突还是我的MIUI问题(小米版本冲突)。即使在模拟器上,它也有相同的错误


任何建议都有助于发布导致错误的代码。设身处地想一想:你能诊断出一个只不过是部分堆栈跟踪的问题吗?另外,请查看for MessageQueue。你看到那里有一个
enableMonitor()
方法吗?是的,如问题内容所述,它有一条消息,上面写着
W/ReflectionUtils:java.lang.NoSuchMethodException:android.os.MessageQueue#enableMonitor()#bestmatch
@MarsAtomic还应该编辑什么?我已尝试添加所有必要的细节。请让我know@MarsAtomic当前位置请交叉核对问题。。我有很好的编辑。欢迎回来。
public class ProgressUtility {

    private MaterialCardView materialCardView;
    private ProgressBar progressBar;
    private ConstraintLayout constraintLayout;
    private TextView textView;

    Animation fadeIn;

    public ProgressUtility(Context context, View view) {
        materialCardView = view.findViewById(R.id.cardViewProgressBtn);
        constraintLayout = view.findViewById(R.id.constraintLayoutProgressBtn);
        progressBar = view.findViewById(R.id.progressBar2);
        textView = view.findViewById(R.id.msgText);
    }

    public void buttonActivated() {
        progressBar.setVisibility(View.VISIBLE);
        textView.setText("Please Wait...");
    }

    public void buttonFinished() {
        constraintLayout.setBackgroundColor(materialCardView.getResources().getColor(R.color.colorPrimaryDark));
        progressBar.setVisibility(View.GONE);
        textView.setText("Done");
    }
}