- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
每次在第 3 次重新启动时,我的应用程序都会卡在黑屏上。我不知道为什么,我查看了 Facebook 和 Firebase 文档,并遵循示例 ( github )。有没有人也遇到过这种情况?
附加信息:
Facebook 库:com.facebook.android:facebook-android-sdk:4.12.0
Firebase 库:com.google.firebase:firebase-auth:9.0.0
主 Activity
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
private Intent navigationIntent;
private Intent serviceIntent;
// FIREBASE
private FirebaseAuth firebaseAuth;
private FirebaseAuth.AuthStateListener firebaseAuthListener;
// FACEBOOK
private CallbackManager FBcallbackManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
navigationIntent = new Intent(this, NavigationActivity.class);
serviceIntent = new Intent(this, BackgroundService.class);
// Initialize Firebase
firebaseAuth = FirebaseAuth.getInstance();
firebaseAuthListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
FirebaseUser user = firebaseAuth.getCurrentUser();
if (user != null) {
// User is signed in
// if so start next activty and close this one
Log.d(TAG, "User logged in");
startHomeActivity();
startActivity(navigationIntent);
finish();
} else {
Log.d(TAG, "User not logged in");
}
}
};
// Initialize Facebook Login button
FBcallbackManager = CallbackManager.Factory.create();
LoginButton loginButton = (LoginButton) findViewById(R.id.facebookButton);
loginButton.setReadPermissions("email", "public_profile");
loginButton.registerCallback(FBcallbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
handleFacebookAccessToken(loginResult.getAccessToken());
}
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException error) {
Log.d("Facebook Error", error.toString());
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
FBcallbackManager.onActivityResult(requestCode, resultCode, data);
}
@Override
protected void onResume() {
super.onResume();
firebaseAuth.addAuthStateListener(firebaseAuthListener);
}
@Override
protected void onPause() {
super.onPause();
if (firebaseAuthListener != null) {
firebaseAuth.removeAuthStateListener(firebaseAuthListener);
}
}
private void handleFacebookAccessToken(AccessToken accessToken) {
final AuthCredential authCredential = FacebookAuthProvider.getCredential(accessToken.getToken());
firebaseAuth.signInWithCredential(authCredential).addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
Log.d(TAG, "Authentication successful");
startHomeActivity();
} else {
Log.d(TAG, "Authentication not successful");
Log.d(TAG, task.getException().getMessage());
}
}
});
}
private boolean isServiceRunning(Class<?> serviceClass) {
ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
for (ActivityManager.RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
if (serviceClass.getName().equals(service.service.getClassName())) {
return true;
}
}
return false;
}
private void startHomeActivity() {
if (navigationIntent != null && serviceIntent != null) {
if (!isServiceRunning(BackgroundService.class)) {
startService(serviceIntent);
Log.d(TAG, "Service is no running. Starting service..");
} else {
Log.d(TAG, "Service is running. Not starting service..");
}
startActivity(navigationIntent);
finish();
}
}
}
应用:
public class ???????? extends Application {
@Override
public void onCreate() {
super.onCreate();
FacebookSdk.sdkInitialize(getApplicationContext());
}
}
上次重启前的 Logcat(特定于应用程序)(第 3 次重启/卡住时没有日志)
05-24 16:53:19.547 16587-16618/my.package.app W/System.err: remove failed: ENOENT (No such file or directory) : /data/user/0/my.package.app/files/AppEventsLogger.persistedevents
05-24 16:53:19.557 16587-16609/my.package.app V/FA: Inactivity, disconnecting from AppMeasurementService
05-24 16:53:19.627 16587-16618/my.package.app I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
05-24 16:53:19.627 16587-16618/my.package.app I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
05-24 16:53:30.167 16587-16587/my.package.app D/ViewRootImpl: ViewPostImeInputStage processKey 0
05-24 16:53:30.247 16587-16587/my.package.app D/ViewRootImpl: ViewPostImeInputStage processKey 1
05-24 16:53:30.287 16587-16609/my.package.app V/FA: Activity paused, time: 455339818
05-24 16:53:30.807 16587-16587/my.package.app D/FirebaseApp: Notifying background state change listeners.a
Logcat(firebase 后台崩溃)
05-24 16:53:14.247 16940-16940/my.package.app:background_crash E/DynamiteModule: Failed to load module descriptor class: Didn't find class "com.google.android.gms.dynamite.descriptors.com.google.android.gms.crash.ModuleDescriptor" on path: DexPathList[[zip file "/data/app/my.package.app-1/base.apk"],nativeLibraryDirectories=[/data/app/my.package.app-1/lib/arm64, /vendor/lib64, /system/lib64]]
05-24 16:53:14.247 16940-16968/my.package.app:background_crash W/System.err: remove failed: ENOENT (No such file or directory) : /data/user/0/my.package.app/files/AppEventsLogger.persistedevents
05-24 16:53:14.247 16940-16956/my.package.app:background_crash I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
05-24 16:53:14.247 16940-16956/my.package.app:background_crash I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
05-24 16:53:14.257 16940-16940/my.package.app:background_crash V/GoogleSignatureVerifier: com.google.android.gms signature not valid. Found:
// I have changed the key below for security reasons MIIEQzCCAyugAwIBAgIJAMLgh0ZkSjCNMA0GCSqGSIb3DQEBBAUAMHQxCzAJBgNVBAYTAlVTMRMw
MIIEQzCCAyugAwIBAgIJAMLgh0ZkSjCNMA0GCSqGSIb3DQEBBAUAMHQxCzAJBgNVBAYTAlVTMRMw
MIIEQzCCAyugAwIBAgIJAMLgh0ZkSjCNMA0GCSqGSIb3DQEBBAUAMHQxCzAJBgNVBAYTAlVTMRMw
MIIEQzCCAyugAwIBAgIJAMLgh0ZkSjCNMA0GCSqGSIb3DQEBBAUAMHQxCzAJBgNVBAYTAlVTMRMw
MIIEQzCCAyugAwIBAgIJAMLgh0ZkSjCNMA0GCSqGSIb3DQEBBAUAMHQxCzAJBgNVBAYTAlVTMRMw
MIIEQzCCAyugAwIBAgIJAMLgh0ZkSjCNMA0GCSqGSIb3DQEBBAUAMHQxCzAJBgNVBAYTAlVTMRMw
MIIEQzCCAyugAwIBAgIJAMLgh0ZkSjCNMA0GCSqGSIb3DQEBBAUAMHQxCzAJBgNVBAYTAlVTMRMw
05-24 16:53:14.267 16940-16940/my.package.app:background_crash W/ResourcesManager: getTopLevelResources: /system/priv-app/PrebuiltGmsCore/PrebuiltGmsCore.apk / 1.0 running in my.package.app rsrc of package com.google.android.gms
05-24 16:53:14.267 16940-16940/my.package.app:background_crash D/ResourcesManager: For user 0 new overlays fetched Null
05-24 16:53:14.267 16940-16940/my.package.app:background_crash I/InjectionManager: Inside getClassLibPath caller
05-24 16:53:14.287 16940-16940/my.package.app:background_crash W/System: ClassLoader referenced unknown path: /system/priv-app/PrebuiltGmsCore/lib/arm64
05-24 16:53:14.297 16940-16940/my.package.app:background_crash W/ResourcesManager: getTopLevelResources: /system/priv-app/PrebuiltGmsCore/PrebuiltGmsCore.apk / 1.0 running in my.package.app rsrc of package com.google.android.gms
05-24 16:53:14.297 16940-16940/my.package.app:background_crash D/ChimeraCfgMgr: Reading stored module config
05-24 16:53:14.317 16940-16940/my.package.app:background_crash I/DynamiteModule: Considering local module com.google.android.gms.crash:0 and remote module com.google.android.gms.crash:2
05-24 16:53:14.317 16940-16940/my.package.app:background_crash I/DynamiteModule: Selected remote version of com.google.android.gms.crash, version >= 2
05-24 16:53:14.317 16940-16940/my.package.app:background_crash W/ResourcesManager: getTopLevelResources: /system/priv-app/PrebuiltGmsCore/PrebuiltGmsCore.apk / 1.0 running in my.package.app rsrc of package com.google.android.gms
05-24 16:53:14.327 16940-16940/my.package.app:background_crash I/InjectionManager: Inside getClassLibPath caller
05-24 16:53:14.327 16940-16940/my.package.app:background_crash W/System: ClassLoader referenced unknown path: /data/user/0/com.google.android.gms/app_chimera/m/00000005/n/arm64-v8a
05-24 16:53:14.327 16940-16940/my.package.app:background_crash D/ChimeraFileApk: Primary ABI of requesting process is arm64-v8a
05-24 16:53:14.327 16940-16940/my.package.app:background_crash D/ChimeraFileApk: Classloading successful. Optimized code found.
05-24 16:53:14.337 16940-16940/my.package.app:background_crash I/FirebaseCrashReceiverServiceImpl: FirebaseCrashReceiverServiceImpl created by ClassLoader com.google.android.chimera.container.internal.DelegateLastPathClassLoader[DexPathList[[zip file "/data/user/0/com.google.android.gms/app_chimera/m/00000005/DynamiteModulesC_GmsCore_prodmnc_alldpi_release.apk"],nativeLibraryDirectories=[/data/user/0/com.google.android.gms/app_chimera/m/00000005/n/arm64-v8a, /vendor/lib64, /system/lib64]]]
05-24 16:53:14.337 16940-16940/my.package.app:background_crash D/FirebaseCrashReceiverServiceImpl: onCreate
05-24 16:53:14.347 16940-16940/my.package.app:background_crash I/DynamiteModule: Considering local module com.google.android.gms.flags:0 and remote module com.google.android.gms.flags:1
05-24 16:53:14.347 16940-16940/my.package.app:background_crash I/DynamiteModule: Selected remote version of com.google.android.gms.flags, version >= 1
05-24 16:53:14.417 16940-16940/my.package.app:background_crash I/FirebaseCrashSenderServiceImpl: FirebaseCrashSenderServiceImpl created by ClassLoader com.google.android.chimera.container.internal.DelegateLastPathClassLoader[DexPathList[[zip file "/data/user/0/com.google.android.gms/app_chimera/m/00000005/DynamiteModulesC_GmsCore_prodmnc_alldpi_release.apk"],nativeLibraryDirectories=[/data/user/0/com.google.android.gms/app_chimera/m/00000005/n/arm64-v8a, /vendor/lib64, /system/lib64]]]
05-24 16:53:14.417 16940-16940/my.package.app:background_crash D/FirebaseCrashSenderServiceImpl: onCreate
最佳答案
这可能是后台 Firebase 崩溃进程以 SDK 未预期的方式调用 Facebook SDK 的问题。您可以通过检查 Firebase 是否已正确初始化来保护它:
@Override
public void onCreate() {
super.onCreate();
if (!FirebaseApp.getApps(this).isEmpty()) {
FacebookSdk.sdkInitialize(getApplicationContext());
}
}
尝试一下,看看它是否能阻止卡住的发生。
关于java - 第 3 次重新启动后,使用 Firebase 和 Facebook 身份验证的 LoginActivity 没有响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37396811/
我不断收到错误消息,表明我的登录 Activity 存在某种泄漏窗口,这是我发生错误的代码块。我尝试分别关闭对话框和警报框,但仍然不断收到此错误。 try { Aler
不要没有什么问题,只是每次输入用户名和密码对话框显示正在尝试登录,应用程序刚刚崩溃。使用的服务器:Wamp下面是使用的代码。任何帮助将不胜感激。提前致谢。 登录 Activity .java: pac
我想知道最好的方法是什么: 我对需要记录用户的 API 进行查询。当应用程序开始登录时,如果登录正确,将在首选项中存储用户/传递。 登录后,如果在我尝试从 API 调用方法时任何 Activity 中
由于我们设置 AWS 托管的方式,我必须为 CakePHP 的 loginAction 使用绝对 URL。目前,我的 loginAction 看起来像这样(现在不起作用) 'loginAction'
这是 Facebook 自己提供的基本程序 - 将 Android 应用程序连接到 Facebook:但我似乎得到一个错误: Activity com.Facebook.LoginActivity h
我开始在我的应用程序中实现 Facebook 的 AccountKit SDK。在 UI 文档中,它清楚地为我提供了主题背景图像的属性,但这不起作用。 https://developers.faceb
我有一个使用 Facebook 登录的应用程序。我有 FacebookSDK 并使用 com.facebook.LoginActivity。 问题是在 10"平板电脑上,当显示软键盘时, Activi
我已经尝试解决这个问题两个多小时了。我的 POST 请求似乎都在我的 LoginActivity 中工作,但由于某种原因,它们在我的 MainActivity 中不起作用。 我的网络服务器可以很好地处
我正在制作一个带有身份验证的 Android 应用程序。启动 Activity 是 MainActivity,但是当用户未登录时,我会启动一个名为 LoginActivity 的新 Activity
LoginActivity.java 是我打开 Android 应用程序后运行的第一件事,会看到一个登录屏幕,要求输入从数据库检索的电话号码和密码。我有一个与该项目相关的 mysql 数据库在我的计算
我有两个 Activity ......LoginActivity(Launcher Activity)和MainActivity。安装并启动应用程序后,将调用 LoginActivity,输入用户名
我正在使用钩子(Hook)通过钩子(Hook)覆盖默认的 LoginAction。 但是我得到了这个异常: Caused by: java.lang.ClassNotFoundException: c
我已经安装并配置了将 Facebook SDK 链接到我的 Android 应用程序的所有内容。 Facebook SDK 在我的项目中 我在Facebook APP ID中添加了我的APP ID 我
我是 Java/Android 编程的新手。我开始了解布局的工作原理以及如何重定向它。我有一个启动画面 > 登录 > main 。现在我想跳过登录 Activity 。我该怎么做? 编辑: 这就是我的
我正在构建一个使用 facebook SDK 的 android 应用程序。我有一项 Activity 执行一些需要 facebook 登录的操作。我设计了 Activity ,因此实际的 Sessi
我对 Android Studio 还很陌生。当用户想要登录/注册 MySQL 数据库(使用 phpMyAdmin)时,我尝试使用 LoginActivity 输入用户的电子邮件和密码。我的代码现在只
描述: 我想在我的 LoginAction 上使用一个监听器,但我正在使用的那个不工作。 我有一个实体: class User implements AdvancedUserInterface {
如何从拦截器(非 Activity 类)启动LoginActivity?我已经尝试了下面的代码(Interceptor),但对我不起作用。 拦截器 OkHttpClient client = new
每当我运行我的 android 应用程序时,我都会遇到异常: 05-07 12:03:55.356: E/AndroidRuntime(589): FATAL EXCEPTION: main 05-0
在我的应用程序中,我想在用户不活动 3 分钟后退出 loginActivity 我目前正在使用此代码来执行此操作,但在我的应用程序中有超过 20 个 Activity 所以不用粘贴这堆代码,每个 Ac
我是一名优秀的程序员,十分优秀!