- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我所有的 firebase 监听器突然停止工作,我开始在我的日志中得到 Local module descriptor class for com.google.android.gms.crash not found.
,完全没有错误。我在这里搜索了类似的问题,但几乎所有问题都没有被接受的解决方案,而少数被接受的解决方案对我的情况没有帮助。这似乎很奇怪,因为我没有改变听众本身。如果有任何建议,我将不胜感激。
这是我的登录 Activity :
public class LoginActivity extends AppCompatActivity implements View.OnClickListener{
//defining views
private Button buttonSignIn;
private EditText editTextEmail;
private EditText editTextPassword;
private TextView textViewSignup;
private TextView textViewForgotPassword;
//firebase auth object
private FirebaseAuth firebaseAuth;
//progress dialog
private ProgressDialog progressDialog;
private Toolbar mActionBarToolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
Window w = getWindow(); // in Activity's onCreate() for instance
w.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
}
//getting firebase auth object
firebaseAuth = FirebaseAuth.getInstance();
//if the objects getcurrentuser method is not null
//means user is already logged in
if(firebaseAuth.getCurrentUser() != null){
//close this activity
finish();
//opening profile activity
startActivity(new Intent(getApplicationContext(), MainActivity.class));
}
//initializing views
editTextEmail = (EditText) findViewById(R.id.editTextEmail);
editTextPassword = (EditText) findViewById(R.id.editTextPassword);
buttonSignIn = (Button) findViewById(R.id.buttonSignin);
textViewSignup = (TextView) findViewById(R.id.textViewSignUp);
textViewForgotPassword = (TextView) findViewById(R.id.textViewForgotPassword);
progressDialog = new ProgressDialog(this);
//attaching click listener
buttonSignIn.setOnClickListener(this);
textViewSignup.setOnClickListener(this);
textViewForgotPassword.setOnClickListener(this);
}
//method for user login
private void userLogin(){
String email = editTextEmail.getText().toString().trim();
String password = editTextPassword.getText().toString().trim();
//checking if email and passwords are empty
if(TextUtils.isEmpty(email)){
Toast.makeText(this,"Please enter email",Toast.LENGTH_LONG).show();
return;
}
if(TextUtils.isEmpty(password)){
Toast.makeText(this,"Please enter password",Toast.LENGTH_LONG).show();
return;
}
//if the email and password are not empty
//displaying a progress dialog
progressDialog.setMessage("Logging In Please Wait...");
progressDialog.show();
//logging in the user
firebaseAuth.signInWithEmailAndPassword(email, password)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
progressDialog.dismiss();
//if the task is successfull
if(task.isSuccessful()){
//start the profile activity
finish();
startActivity(new Intent(getApplicationContext(), MainActivity.class));
}
else {
failure();
}
}
});
}
public void failure(){
Toast.makeText(this,"Wrong Email or Password",Toast.LENGTH_LONG).show();
}
@Override
public void onClick(View view) {
if(view == buttonSignIn){
userLogin();
}
if(view == textViewSignup){
finish();
startActivity(new Intent(this, SignUpActivity.class));
}
if(view == textViewForgotPassword){
finish();
startActivity(new Intent(this, ResetPasswordActivity.class));
}
}
}
这是我的注册 Activity :
public class SignUpActivity extends AppCompatActivity implements View.OnClickListener {
//defining view objects
private EditText editTextEmail;
private EditText editTextPassword;
private EditText editTextPassword2;
private Button buttonSignup;
private TextView textViewSignin;
private TextView textViewForgotPassword;
private ProgressDialog progressDialog;
//defining firebaseauth object
private FirebaseAuth firebaseAuth;
private android.support.v7.widget.Toolbar mActionBarToolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sign_up);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
Window w = getWindow(); // in Activity's onCreate() for instance
w.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
}
//initializing firebase auth object
firebaseAuth = FirebaseAuth.getInstance();
//if getCurrentUser does not returns null
if(firebaseAuth.getCurrentUser() != null){
//that means user is already logged in
//so close this activity
finish();
//and open profile activity
startActivity(new Intent(getApplicationContext(), ProfileActivity.class));
}
//initializing views
editTextEmail = (EditText) findViewById(R.id.editTextEmail);
editTextPassword = (EditText) findViewById(R.id.editTextPassword);
editTextPassword2 = (EditText) findViewById(R.id.editTextPassword2);
textViewSignin = (TextView) findViewById(R.id.textViewSignin);
textViewForgotPassword = (TextView) findViewById(R.id.textViewForgotPassword);
buttonSignup = (Button) findViewById(R.id.buttonSignup);
progressDialog = new ProgressDialog(this);
//attaching listener to button
buttonSignup.setOnClickListener(this);
textViewSignin.setOnClickListener(this);
textViewForgotPassword.setOnClickListener(this);
}
private void registerUser(){
//getting email and password from edit texts
String email = editTextEmail.getText().toString().trim();
String password = editTextPassword.getText().toString().trim();
String password2 = editTextPassword2.getText().toString().trim();
//checking if email and passwords are empty
if(TextUtils.isEmpty(email)){
Toast.makeText(this,"Please enter email",Toast.LENGTH_LONG).show();
return;
}
if(TextUtils.isEmpty(password)){
Toast.makeText(this,"Please enter password",Toast.LENGTH_LONG).show();
return;
}
if(password.equals(password2)){
}else {
Toast.makeText(this,"Passwords not the same",Toast.LENGTH_LONG).show();
return;
}
//if the email and password are not empty
//displaying a progress dialog
progressDialog.setMessage("Registering Please Wait...");
progressDialog.show();
//creating a new user
firebaseAuth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
//checking if success
if(task.isSuccessful()){
finish();
startActivity(new Intent(getApplicationContext(), MainActivity.class));
}else{
//display some message here
Toast.makeText(SignUpActivity.this,"Registration Error",Toast.LENGTH_LONG).show();
}
progressDialog.dismiss();
}
});
}
@Override
public void onClick(View view) {
if(view == buttonSignup){
registerUser();
}
if(view == textViewSignin){
//open login activity when user taps on the already registered textview
startActivity(new Intent(this, LoginActivity.class));
}
if(view == textViewForgotPassword){
finish();
startActivity(new Intent(this, ResetPasswordActivity.class));
}
}
}
这是我的构建/应用程序/gradle:
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
android {
compileSdkVersion 26
defaultConfig {
applicationId "com.nocrat.fanti"
minSdkVersion 19
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
useLibrary 'org.apache.http.legacy'
vectorDrawables.useSupportLibrary = true // This line here
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE-FIREBASE.txt'
exclude 'META-INF/NOTICE'
}
packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE-FIREBASE.txt'
exclude 'META-INF/NOTICE'
}
configurations.all {
resolutionStrategy.force 'com.google.code.findbugs:jsr305:1.3.9'
}
}
repositories {
mavenCentral()
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
//noinspection GradleCompatible
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support:design:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
implementation 'com.android.support:support-v4:26.1.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
compile 'com.firebase:firebase-client-android:2.5.2'
compile 'com.google.firebase:firebase-database:11.8.0'
compile 'com.google.firebase:firebase-auth:11.8.0'
compile 'com.google.firebase:firebase-core:11.8.0'
compile 'com.google.firebase:firebase-firestore:11.8.0'
compile 'com.android.support:recyclerview-v7:26.1.0'
compile 'com.google.api-client:google-api-client:1.23.0'
compile 'com.google.android.gms:play-services-location:11.8.0'
compile 'com.google.android.gms:play-services-auth:11.8.0'
compile 'com.android.support:cardview-v7:26.1.0'
compile 'com.google.firebase:firebase-crash:11.8.0'
}
apply plugin: 'com.google.gms.google-services'
这是我的日志:
02/21 08:46:39: Launching app
$ adb install-multiple -r -t -p com.nocrat.fanti C:\xampp\htdocs\fanti\app\build\intermediates\split-apk\debug\slices\slice_8.apk
Split APKs installed
$ adb shell am start -n "com.nocrat.fanti/com.nocrat.fanti.LoginActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -D
Waiting for application to come online: com.nocrat.fanti | com.nocrat.fanti.test
Waiting for application to come online: com.nocrat.fanti | com.nocrat.fanti.test
Connecting to com.nocrat.fanti
Capturing and displaying logcat messages from application. This behavior can be disabled in the "Logcat output" section of the "Debugger" settings page.
W/ActivityThread: Application com.nocrat.fanti is waiting for the debugger on port 8100...
I/System.out: Sending WAIT chunk
I/zygote64: Debugger is active
Connected to the target VM, address: 'localhost:8602', transport: 'socket'
I/System.out: Debugger has connected
I/System.out: waiting for debugger to settle...
I/System.out: waiting for debugger to settle...
I/System.out: waiting for debugger to settle...
I/chatty: uid=10232(com.nocrat.fanti) identical 1 line
I/System.out: waiting for debugger to settle...
I/System.out: waiting for debugger to settle...
I/System.out: waiting for debugger to settle...
I/System.out: debugger has settled (1435)
I/MultiDex: VM with version 2.1.0 has multidex support
I/MultiDex: Installing application
I/MultiDex: VM has multidex support, MultiDex support library is disabled.
W/zygote64: Skipping duplicate class check due to unrecognized classloader
W/DynamiteModule: Local module descriptor class for com.google.firebase.auth not found.
W/DynamiteModule: Local module descriptor class for com.google.firebase.auth not found.
I/BiChannelGoogleApi: [FirebaseAuth: ] No Fallback module; NOT setting up for lazy initialization
W/DynamiteModule: Local module descriptor class for com.google.firebase.auth not found.
I/FirebaseAuth: [FirebaseAuth:] Loading module via FirebaseOptions.
I/FirebaseAuth: [FirebaseAuth:] Preparing to create service connection to gms implementation
I/DynamiteModule: Considering local module com.google.android.gms.flags:2 and remote module com.google.android.gms.flags:0
I/DynamiteModule: Selected local version of com.google.android.gms.flags
W/DynamiteModule: Local module descriptor class for com.google.android.gms.crash not found.
I/DynamiteModule: Considering local module com.google.android.gms.crash:0 and remote module com.google.android.gms.crash:10
I/DynamiteModule: Selected remote version of com.google.android.gms.crash, version >= 10
W/zygote64: Skipping duplicate class check due to unrecognized classloader
I/FirebaseCrashApiImpl: FirebaseCrashApiImpl created by ClassLoader ae[DexPathList[[zip file "/data/user_de/0/com.google.android.gms/app_chimera/m/00000054/DynamiteModulesC_GmsCore_prodmnc_alldpi_release.apk"],nativeLibraryDirectories=[/data/user_de/0/com.google.android.gms/app_chimera/m/00000054/n/arm64-v8a, /system/lib64, /system/vendor/lib64]]]
I/FirebaseCrash: FirebaseCrash reporting loaded - com.google.android.gms.internal.zzdzk@791b6c3
V/FA: Cancelling job. JobID: 997157958
V/FA: Registered activity lifecycle callback
I/FirebaseInitProvider: FirebaseApp initialization successful
I/InstantRun: starting instant run server: is main process
V/Font: Change font:2
V/FA: Collection enabled
V/FA: App package, google app id: com.nocrat.fanti, 1:877219620776:android:1780dbf638eb2991
I/FA: App measurement is starting up, version: 11910
I/FA: To enable debug logging run: adb shell setprop log.tag.FA VERBOSE
I/FA: To enable faster debug mode event logging run:
adb shell setprop debug.firebase.analytics.app com.nocrat.fanti
D/FA: Debug-level message logging enabled
I/DynamiteModule: Considering local module com.google.android.gms.flags:2 and remote module com.google.android.gms.flags:0
I/DynamiteModule: Selected local version of com.google.android.gms.flags
W/DynamiteModule: Local module descriptor class for com.google.android.gms.crash not found.
V/FA: Connecting to remote service
V/FA: Connection attempt already in progress
I/FirebaseCrashApiImpl: FirebaseCrash reporting API initialized
I/FirebaseCrash: FirebaseCrash reporting initialized com.google.android.gms.internal.zzdzk@791b6c3
D/FirebaseCrash: Firebase Analytics Listener for Firebase Crash is initialized
V/FA: onActivityCreated
V/FA: onActivityCreated
V/BoostFramework: mIOPStart method = public int com.qualcomm.qti.Performance.perfIOPrefetchStart(int,java.lang.String)
I/zygote64: Do partial code cache collection, code=28KB, data=29KB
I/zygote64: After code cache collection, code=28KB, data=29KB
I/zygote64: Increasing code cache capacity to 128KB
I/zygote64: Do partial code cache collection, code=37KB, data=59KB
I/zygote64: After code cache collection, code=37KB, data=59KB
I/zygote64: Increasing code cache capacity to 256KB
I/zygote64: Compiler allocated 8MB to compile void android.widget.TextView.<init>(android.content.Context, android.util.AttributeSet, int, int)
V/FA: Connection attempt already in progress
D/AppTracker: App Event: start
V/FA: Activity resumed, time: 511184460
I/FA: Tag Manager is not found and thus will not be used
D/FA: Logging event (FE): screen_view(_vs), Bundle[{firebase_event_origin(_o)=auto, firebase_screen_class(_sc)=MainActivity, firebase_screen_id(_si)=5493284681258470717}]
I/DynamiteModule: Considering local module com.google.android.gms.firebase_database:4 and remote module com.google.android.gms.firebase_database:6
I/DynamiteModule: Selected remote version of com.google.android.gms.firebase_database, version >= 6
D/OpenGLRenderer: HWUI GL Pipeline
V/FA: Connection attempt already in progress
D/FA: Connected to remote service
V/FA: Processing queued up service tasks: 4
D/NetworkSecurityConfig: No Network Security Config specified, using platform default
E/test6: com.google.firebase.auth.internal.zzg@9c63d3f
I/zygote64: Do full code cache collection, code=91KB, data=82KB
I/zygote64: After code cache collection, code=84KB, data=59KB
E/Test6: https://fanti-82ec7.firebaseio.com/users/Dlwpcmzx0hPOeWxXqzhZWLStQ6g1/Projects
E/test5: what's happening
W/RenderThread: type=1400 audit(0.0:61288): avc: denied { search } for name="proc" dev="debugfs" ino=15082 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:qti_debugfs:s0 tclass=dir permissive=0
I/vndksupport: sphal namespace is not configured for this process. Loading /vendor/lib64/hw/gralloc.msm8996.so from the current namespace instead.
I/Adreno: PFP: 0x005ff087, ME: 0x005ff063
I/OpenGLRenderer: Initialized EGL, version 1.4
D/OpenGLRenderer: Swap behavior 2
E/RecyclerView: No adapter attached; skipping layout
I/vndksupport: sphal namespace is not configured for this process. Loading /vendor/lib64/hw/gralloc.msm8996.so from the current namespace instead.
[ 02-21 08:46:50.388 910: 1209 E/ ]
Cannot load libgui-plugin
E/test4: what's happening
V/FA: Inactivity, disconnecting from the service
V/FA: Session started, time: 511194425
D/FA: Logging event (FE): session_start(_s), Bundle[{firebase_event_origin(_o)=auto, firebase_screen_class(_sc)=MainActivity, firebase_screen_id(_si)=5493284681258470717}]
V/FA: Connecting to remote service
D/FA: Connected to remote service
V/FA: Processing queued up service tasks: 1
I/FirebaseCrash: Sending crashes
V/FA: Inactivity, disconnecting from the service
W/InputEventReceiver: Attempted to finish an input event but the input event receiver has already been disposed.
D/AppTracker: App Event: stop
V/FA: Recording user engagement, ms: 143299
V/FA: Connecting to remote service
V/FA: Activity paused, time: 511327757
D/FA: Logging event (FE): user_engagement(_e), Bundle[{firebase_event_origin(_o)=auto, engagement_time_msec(_et)=143299, firebase_screen_class(_sc)=MainActivity, firebase_screen_id(_si)=5493284681258470717}]
V/FA: Connection attempt already in progress
D/FA: Connected to remote service
V/FA: Processing queued up service tasks: 2
V/FA: Inactivity, disconnecting from the service
I/FirebaseAuth: [FirebaseAuth:] Loading module via FirebaseOptions.
I/FirebaseAuth: [FirebaseAuth:] Preparing to create service connection to gms implementation
Disconnected from the target VM, address: 'localhost:8602', transport: 'socket'
最佳答案
您收到以下错误:
Local module descriptor class for com.google.android.gms.crash not found
因为您使用应用的设备没有最新版本的 Google Play Services
。
为了解决这个问题,请将 Google Play Services
更新到最新版本,您的问题将得到解决。
关于java - Firebase 突然停止工作,找不到 com.google.android.gms.crash 的本地模块描述符类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48905058/
我的设备有一项需要 24/7 全天候工作的前台服务。有时,当 gms 更新发生时,它会终止所有 gms 服务并重新启动它们。 我的服务也在使用 gms(firbase AuthService),所以它
我的应用程序的 OS 4.x 版本中止找不到类 .NoClassDefFoundError: com.google.android.gms.internal.zzno。当手机使用更高版本的 Googl
我是新的 Android 设备,并且对支付部分更加陌生,我正在通过此链接将 Gpay 实现到我的应用程序中 https://developers.google.com/pay/api/android/
我有一个已发布 Alpha 版本的应用。 我在我的应用程序中使用 Places SDK for Android、Mobile Crash Reporting API、Firebase Services
实际上,我正在尝试制作一个具有免费和付费风格的应用程序。当我使用简单的 findViewById 方法进行绑定(bind)时,它工作正常。但是当我尝试添加 butterknife 时,我拼命坚持使用
我尝试在更新 android studio 3.2.1 后修复我的应用程序的一些功能。但似乎我得到了更多的错误。当我尝试重建应用程序时。我收到了这个信使: Error: Type com.google
我试着在Stackoverflow上搜索,并尝试了其他类似性质的Stackoverflow问题中建议的解决方案,比如这个和那个,但我仍然得到以下错误插件[id:‘com.google.gms.goog
可能已经在其他一些上下文和依赖项中询问了这个问题。 但即使花了一整天,我仍然无法弄清楚这一点。 所以下面我将完整的错误日志与我的项目级 Gradle 文件和应用级 Gradle 文件一起粘贴。 尝试运
我将 com.google.android.gms:play-services-location 更新为 9.0.2 到 9.4.0 一切正常但无法解析 PlaceAutocompleteFragme
在 'com.google.android.gms:play-services-location:9.4.0' 无法导入导入com.google.android.gms.location.places
我将 com.google.android.gms:play-services-ads 更新为 15.0.2 并将类路径 com.google.gms:google-services: 更新为 3.3
我之前问过如何显示不同的markerInfoWindow in this question , 现在,当用户单击左角的按钮时,我正在尝试删除特定的标记。 首先在 .h 文件中: NSMutableAr
如何通过这种方法获得经纬度? - (void)mapView:(GMSMapView )mapView didEndDraggingMarker:(GMSMarker )marker; 我想在调用 d
我正在为我的 iOS 应用程序使用 Google Maps SDK。 我将其配置为当点击 GMSMarker 时,它会显示它的标题。一切正常。 我想对 GMSPolyline 做同样的事情,但不知道怎
我正在尝试使用 Google Play 游戏服务 API 为成就绘制图标。 然而,它正在默默地失败。 方法/问题: 图片的URI成功获取,存在且有效。 我使用 ImageManager.loadIma
我收到错误消息是因为我在尝试使用 Google 的应用程序索引库的同时还导入了一个库,该库将旧版本的 android gms 库用于不同的组件 - 来自 Google 的 cast 库玩服务。错误状态
Google 跟踪代码管理器可以在没有 Google 移动服务或 Firebase Analytics 的设备上运行吗? 例如:华为手机没有谷歌服务,只有华为服务在运行。 最佳答案 据我所知,Goog
如何同时拥有 Google 移动服务和 华为 应用程序中的移动服务? 就是这样 华为 已丢失超过 的许可证手机短信 ,看来我们需要替换所有手机短信 的应用程序中使用的服务华为 提供的。什么是“最佳实践
我确实如此 - 和许多开发人员一样,对臭名昭著的 android 65000 方法限制有问题。我已经对我的应用程序进行了多重索引,但我真的很想以某种方式使其更轻。 这是我的应用程序方法的图表(使用 d
我正在使用 JGroups 4.0.15.Final 来实现集群应用程序。当我启动两个节点时一切正常,它们连接并开始工作。但是当我杀死/重新启动一个节点时,它们将不再连接在一起。 注意:它们是我应用程
我是一名优秀的程序员,十分优秀!