0

我在 Firebase Admin 上运行一个应用程序。所以这段代码在我第一次运行时就可以工作,但几周后我又试了一次,经过数小时的调试后我一直收到这个错误(RunLoop:Firebase Database runloop (4.1.5) 中的未捕获异常)。我见过其他的运行循环版本为(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)

有什么想法可能是错的吗?先谢谢了!

4

1 回答 1

0

Firebase Admin SDK 不适合在 Android 应用中运行。它仅支持独立和服务器应用程序。对于 Android 应用程序,您应该改用常规的 Android SDK。

于 2017-04-03T04:18:54.030 回答