java - java.lang.RuntimeException:更新 Firestore 版本后 Firestore (0.6.6-dev) 出现内部错误
问题描述
firestore:17.0.1
从到更新后我收到以下错误firestore:17.0.2
java.lang.RuntimeException: Internal error in Firestore (0.6.6-dev).
at com.google.firebase.firestore.g.zza.zzb(SourceFile:324)
at com.google.firebase.firestore.g.zzd.run(Unknown Source)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:7331)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Caused by: java.lang.AssertionError: impossible
at java.lang.Enum$1.create(Enum.java:45)
at java.lang.Enum$1.create(Enum.java:35)
at libcore.util.BasicLruCache.get(BasicLruCache.java:54)
at java.lang.Enum.getSharedConstants(Enum.java:211)
at java.util.EnumSet.noneOf(EnumSet.java:48)
at io.opencensus.trace.Span.<clinit>(Span.java:58)
at io.opencensus.trace.SpanBuilder$NoopSpanBuilder.startSpan(SpanBuilder.java:238)
at io.grpc.internal.CensusTracingModule$ClientCallTracer.<init>(CensusTracingModule.java:240)
at io.grpc.internal.CensusTracingModule.newClientCallTracer(CensusTracingModule.java:122)
at io.grpc.internal.CensusTracingModule$TracingClientInterceptor.interceptCall(CensusTracingModule.java:381)
at io.grpc.ClientInterceptors$InterceptorChannel.newCall(ClientInterceptors.java:104)
at io.grpc.internal.CensusStatsModule$StatsClientInterceptor.interceptCall(CensusStatsModule.java:654)
at io.grpc.ClientInterceptors$InterceptorChannel.newCall(ClientInterceptors.java:104)
at io.grpc.internal.ManagedChannelImpl.newCall(ManagedChannelImpl.java:560)
at com.google.firebase.firestore.g.zzm.zza(SourceFile:61)
at com.google.firebase.firestore.f.zza.zza(SourceFile:193)
at com.google.firebase.firestore.f.zzo.zzk(SourceFile:332)
at com.google.firebase.firestore.f.zzo.zza(SourceFile:256)
at com.google.firebase.firestore.b.zzab.zza(SourceFile:162)
at com.google.firebase.firestore.b.zzd.zza(SourceFile:79)
at com.google.firebase.firestore.b.zzf.zzc(SourceFile:132)
at com.google.firebase.firestore.b.zzn.run(Unknown Source)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:154)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:269)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at com.google.firebase.firestore.g.zza$zza.run(SourceFile:190)
at java.lang.Thread.run(Thread.java:818)
Caused by: java.lang.NoSuchMethodException: values []
at java.lang.Class.getMethod(Class.java:624)
at java.lang.Class.getDeclaredMethod(Class.java:586)
at java.lang.Enum$1.create(Enum.java:41)
at java.lang.Enum$1.create(Enum.java:35)
at libcore.util.BasicLruCache.get(BasicLruCache.java:54)
at java.lang.Enum.getSharedConstants(Enum.java:211)
at java.util.EnumSet.noneOf(EnumSet.java:48)
at io.opencensus.trace.Span.<clinit>(Span.java:58)
at io.opencensus.trace.SpanBuilder$NoopSpanBuilder.startSpan(SpanBuilder.java:238)
at io.grpc.internal.CensusTracingModule$ClientCallTracer.<init>(CensusTracingModule.java:240)
at io.grpc.internal.CensusTracingModule.newClientCallTracer(CensusTracingModule.java:122)
at io.grpc.internal.CensusTracingModule$TracingClientInterceptor.interceptCall(CensusTracingModule.java:381)
at io.grpc.ClientInterceptors$InterceptorChannel.newCall(ClientInterceptors.java:104)
at io.grpc.internal.CensusStatsModule$StatsClientInterceptor.interceptCall(CensusStatsModule.java:654)
at io.grpc.ClientInterceptors$InterceptorChannel.newCall(ClientInterceptors.java:104)
at io.grpc.internal.ManagedChannelImpl.newCall(ManagedChannelImpl.java:560)
at com.google.firebase.firestore.g.zzm.zza(SourceFile:61)
at com.google.firebase.firestore.f.zza.zza(SourceFile:193)
at com.google.firebase.firestore.f.zzo.zzk(SourceFile:332)
at com.google.firebase.firestore.f.zzo.zza(SourceFile:256)
at com.google.firebase.firestore.b.zzab.zza(SourceFile:162)
at com.google.firebase.firestore.b.zzd.zza(SourceFile:79)
at com.google.firebase.firestore.b.zzf.zzc(SourceFile:132)
at com.google.firebase.firestore.b.zzn.run(Unknown Source)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:154)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:269)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at com.google.firebase.firestore.g.zza$zza.run(SourceFile:190)
at java.lang.Thread.run(Thread.java:818)
这是我用于 Firestore 的代码:
public void fetchDataFromFireStore(final String uuid) {
FirebaseFirestore firebaseFirestore = FirebaseFirestore.getInstance();
Query query = firebaseFirestore.collection(Constants.FirebaseConstants.USER_SPECIFIC_POST).document(uuid).collection(Constants.FirebaseConstants.POST).limit(postPerPageLimit).orderBy(Constants.FirebaseConstants.CREATED_DATE, Query.Direction.DESCENDING);
query.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
int count = 0;
if (task.isSuccessful()) {
if (task.getResult().size() == 0) {
mProgressBar.setVisibility(View.GONE);
textViewNoPost.setVisibility(View.VISIBLE);
} else {
mPostRecyclerAdapter.clearPostList();
for (DocumentSnapshot postDocumentSnapshot : task.getResult()) {
count++;
Post post = postDocumentSnapshot.toObject(Post.class);
if (post != null)
mPostRecyclerAdapter.addMyPost(new Post(post.getUserName(), post.getPost(), post.getPostOwnerUuid(), "", post.getTotalLikes(), post.getPostTime(), post.getCategoryName()));
if (count == postPerPageLimit) {
documentSnapshot = postDocumentSnapshot;
}
}
}
mProgressBar.setVisibility(View.GONE);
mPostRecyclerAdapter.setCurrentUserUID(uuid);
mRecyclerView.setAdapter(mPostRecyclerAdapter);
}
}
});
}
摇篮:
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:27.1.1'
//Gif drawable
implementation 'com.thoughtbot:expandablerecyclerview:1.3'
implementation 'com.android.support:customtabs:27.1.1'
implementation 'com.android.support:exifinterface:27.1.1'
implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.3'
implementation 'com.android.support:design:27.1.1'
implementation 'com.google.firebase:firebase-auth:16.0.2'
implementation 'com.google.android.gms:play-services-auth:15.0.1'
implementation 'com.google.code.gson:gson:2.8.4'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation 'com.android.support:cardview-v7:27.1.1'
implementation 'com.squareup.picasso:picasso:2.71828'
implementation 'com.google.firebase:firebase-database:16.0.1'
implementation 'com.google.firebase:firebase-messaging:17.1.0'
implementation 'com.google.firebase:firebase-firestore:17.0.2'
implementation 'com.google.firebase:firebase-invites:16.0.1'
implementation 'com.jakewharton:butterknife:8.8.1'
implementation 'com.android.support:multidex:1.0.3'
implementation 'com.google.firebase:firebase-config:16.0.0'
implementation 'com.google.android.gms:play-services-ads:15.0.1'
implementation 'com.ss.bannerslider:bannerslider:2.0.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
implementation('com.crashlytics.sdk.android:crashlytics:2.9.2@aar') {
transitive = true
}
它工作正常,但在更新 Firestore 版本后给了我这个错误。在问这个问题之前,我尝试了 stackoverflow/internet 上所有可能的解决方案,但没有任何运气。
解决方案
从firebase支持回复我解决了这个问题,如果有人遇到这个问题,我会在未来添加下面的progauard规则来尝试这个解决方案:
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
推荐阅读
- python - 这个正则表达式的正确术语是什么?
- ionic-framework - 为什么 ionic APK for android 在 build/outputs/apki/debug/ 文件夹下生成并且它没有在设备中打开?
- c# - KeyVaultClient 在调试时随机抛出 FatalExecutionEngineError
- javascript - 如何使用 Cloud 函数从 Cloud Firestore 触发器中的顶级文档访问数据?
- python - ReadFromText 中的 validate 参数在 GCP 上不起作用
- xml - 无法使用 XPath 在 XML 中获得成功
- java - 如何正确抛出运行时异常并重启 docker 容器
- javascript - 变量值更新将值更改为 null
- javascript - 如何将 ECDH 密钥对的原始表示形式转换为 JSON Web 密钥?
- odoo - 安装模块后正常字段没有更新吗?