我在Firebase管理员上运行应用。所以这段代码在我第一次运行时就已经运行了,但几周之后我再次尝试了,经过数小时的调试后我就遇到了这个错误(RunLoop:Firebase数据库运行环路中的未捕获异常(4.1.5))。我已经看到其他版本的runloop版本为(3.0.0),但没有一个错误与我的错误相匹配。
InputStream serviceAccount = getAssets().open("<My JSON file goes here>");
FirebaseOptions options = new FirebaseOptions.Builder()
.setCredential(FirebaseCredentials.fromCertificate(serviceAccount))
.setDatabaseUrl("<My Firebase link goes here>")
.build();
FirebaseApp defaultApp = FirebaseApp.initializeApp(options);
database = FirebaseDatabase.getInstance();
database.setLogLevel(Logger.Level.DEBUG);
database.getReference().child("test").setValue("test value");
对于我的gradle文件,我只有这些:
compile 'com.google.firebase:firebase-admin:4.1.5'
compile 'com.android.support:appcompat-v7:25.2.0'
compile 'com.android.support:design:25.2.0'
testCompile 'junit:junit:4.12'
compile 'com.android.support.constraint:constraint-layout:1.0.0-beta5'
这里有更多的堆栈跟踪:
W/System.err: Mon Apr 03 11:39:33 GMT+08:00 2017 [ERROR] RunLoop: Uncaught exception in Firebase Database runloop (4.1.5). Please report to firebase-database-client@google.com
W/System.err: java.lang.NoSuchMethodError: No virtual method object()Lorg/json/JSONWriter; in class Lorg/json/JSONStringer; or its super classes (declaration of 'org.json.JSONStringer' appears in /system/framework/core-libart.jar)
W/System.err: at com.google.firebase.database.util.JsonMapper.serializeJsonValue(JsonMapper.java:55)
W/System.err: at com.google.firebase.database.util.JsonMapper.serializeJsonValue(JsonMapper.java:44)
W/System.err: at com.google.firebase.database.util.JsonMapper.serializeJson(JsonMapper.java:24)
W/System.err: at com.google.firebase.database.util.GAuthToken.serializeToString(GAuthToken.java:53)
W/System.err: at com.google.firebase.database.core.JvmAuthTokenProvider.wrapOAuthToken(JvmAuthTokenProvider.java:110)
任何想法可能出错?先谢谢!
答案 0 :(得分:0)
Firebase Admin SDK无意在Android应用中运行。它仅支持独立和服务器应用程序。对于Android应用,您应该使用常规Android SDK。