android - 实现谷歌登录时,我的颤振项目出现错误
问题描述
在这里,我已经实现了谷歌登录。我使用了google_sign_in 4.1.4请帮我找出我在哪里做错或遗漏了什么。提前致谢..!!
这个错误 Rejecting re-init on previous-failed class java.lang.Class: java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/lifecycle/LifecycleEventObserver; I/zygote64(27656):在 java.lang.Object java.lang.Class.newInstance() (Class.java:-2)
onTap: () async{
_signIn(context)
.then((FirebaseUser user) => print(user))
.catchError((e) => print(e));
},
final FirebaseAuth _auth = FirebaseAuth.instance;
final GoogleSignIn _googleSignIn = new GoogleSignIn();
Future<FirebaseUser> _signIn(BuildContext context) async{
GoogleSignInAccount googleSignInAccount = await _googleSignIn.signIn(); //crash on this line
GoogleSignInAuthentication gSA = await googleSignInAccount.authentication;
final AuthCredential credential = GoogleAuthProvider.getCredential(idToken: gSA.idToken, accessToken: gSA.accessToken);
final AuthResult authResult = await _auth.signInWithCredential(credential);
final FirebaseUser userDetails = authResult.user;
ProviderDetails providerInfo = new ProviderDetails(userDetails.providerId);
List<ProviderDetails> providerData = new List<ProviderDetails>();
providerData.add(providerInfo);
UserDetails details = new UserDetails(
userDetails.providerId,
userDetails.displayName,
userDetails.photoUrl,
userDetails.email,
providerData,
);
Navigator.push(
context,
new MaterialPageRoute(
builder: (context) => new ChooseCollegeScreen(),
),
);
return userDetails;
}
这是我的错误日志=========>
Rejecting re-init on previously-failed class java.lang.Class<androidx.activity.ComponentActivity$2>: java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/lifecycle/LifecycleEventObserver;
I/zygote64(27656): at java.lang.Object java.lang.Class.newInstance() (Class.java:-2)
I/zygote64(27656): at android.app.Activity android.app.Instrumentation.newActivity(java.lang.ClassLoader, java.lang.String, android.content.Intent) (Instrumentation.java:1175)
I/zygote64(27656): at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:2708)
I/zygote64(27656): at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:2895)
I/zygote64(27656): at void android.app.ActivityThread.-wrap11(android.app.ActivityThread, android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:-1)
I/zygote64(27656): at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1616)
I/zygote64(27656): at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:106)
I/zygote64(27656): at void android.os.Looper.loop() (Looper.java:176)
I/zygote64(27656): at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6651)
I/zygote64(27656): at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
I/zygote64(27656): at void com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run() (RuntimeInit.java:547)
I/zygote64(27656): at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:824)
I/zygote64(27656): Caused by: java.lang.ClassNotFoundException: Didn't find class "androidx.lifecycle.LifecycleEventObserver" on path: DexPathList[[zip file "/data/app/moon.campushaat.com-_doLzLlPm2QzmtHCYUYAfg==/base.apk"],nativeLibraryDirectories=[/data/app/moon.campushaat.com-_doLzLlPm2QzmtHCYUYAfg==/lib/arm64, /data/app/moon.campushaat.com-_doLzLlPm2QzmtHCYUYAfg==/base.apk!/lib/arm64-v8a, /system/lib64, /system/vendor/lib64]]
I/zygote64(27656): at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:125)
I/zygote64(27656): at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
I/zygote64(27656): at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
I/zygote64(27656): at java.lang.Object java.lang.Class.newInstance() (Class.java:-2)
I/zygote64(27656): at android.app.Activity android.app.Instrumentation.newActivity(java.lang.ClassLoader, java.lang.String, android.content.Intent) (Instrumentation.java:1175)
I/zygote64(27656): at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:2708)
I/zygote64(27656): at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:2895)
I/zygote64(27656): at void android.app.ActivityThread.-wrap11(android.app.ActivityThread, android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:-1)
I/zygote64(27656): at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1616)
I/zygote64(27656): at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:106)
I/zygote64(27656): at void android.os.Looper.loop() (Looper.java:176)
I/zygote64(27656): at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6651)
I/zygote64(27656): at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
I/zygote64(27656): at void com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run() (RuntimeInit.java:547)
I/zygote64(27656): at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:824)
解决方案
确保您的应用迁移到androidx
. (gradle.properties
文件包含行android.useAndroidX=true
)
此外,此错误可能与旧 Android 设备(API < 21)上的 apk 文件大小(超过 64K 限制)有关。要么更改minSdkVersion
为 21+,要么将您的应用程序配置为 multidex。
在模块级build.gradle
文件中添加multidex
库作为依赖项:
android {
defaultConfig {
...
minSdkVersion 15
targetSdkVersion 29
multiDexEnabled true
}
...
}
dependencies {
...
implementation 'androidx.multidex:multidex:2.0.1'
}
推荐阅读
- php - PHP 文件下载:PHP 正在 ajax 响应中发送文件数据,但文件未下载
- javascript - 如何修复 _this.video 未定义
- gis - 从 NetLogo 中的栅格数据分配补丁值
- python-3.x - 有没有办法跟踪函数在 n 秒内被调用的次数?
- raspberry-pi - 未能加载提供程序 SiloedPackageProvider.dll 和 metaDeployProvider.dll
- julia - Julialang:在抽象类型上强制执行接口
- linux - 触发 IRQ 处理程序后如何写入文件?
- java - Cassandra 是否有可能返回不一致的值?
- optaplanner - ReflectionHelper::assertGetterMethod() 与构造启发式要求冲突
- python-3.x - 如何附加文本格式的文件中存在的列表?