【发布时间】:2014-10-01 10:37:57
【问题描述】:
我正在尝试启动并运行一个 libgdx 项目,并且我想使用 firebase 进行用户登录。我发现 SimleLogin 类依赖于 Android.jar。有没有办法解决这个问题,因为我想让桌面 java 应用程序和 android 一样运行。
这是导致问题的代码:
SimpleLogin authClient = new SimpleLogin(myRef);;
authClient.createUser("myuser@gmail.com", "much wow",
new SimpleLoginAuthenticatedHandler() {
@Override
public void authenticated(FirebaseSimpleLoginError error,
FirebaseSimpleLoginUser user) {
if (error != null) {
System.out.println(error);
} else {
System.out.println(user);
}
}
});
这在运行时抛出这个:
Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: java.lang.NoClassDefFoundError: android/net/Uri
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:120)
Caused by: java.lang.NoClassDefFoundError: android/net/Uri
at com.firebase.simplelogin.SimpleLogin.makeRequest(SimpleLogin.java:634)
at com.firebase.simplelogin.SimpleLogin.createUser(SimpleLogin.java:417)
at com.mygdx.game.MyGdxGame.create(MyGdxGame.java:63)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:136)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:114)
Caused by: java.lang.ClassNotFoundException: android.net.Uri
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 5 more
我要这样做还是他们声称支持的 Java 平台真的只是 android?
【问题讨论】:
-
我不确定它最近是否更改,但此页面 (firebase.com/docs/android) 仅显示 Android。所以我确实怀疑它在非 Android Java 平台上是否有效(未经修改)。对 Stack Overflow 问题的快速浏览似乎暗示非 Android Java 用户正在使用其 REST API 访问 Firebase。见stackoverflow.com/questions/22252636/…
-
Firebase Java SDK 支持 Android 和普通 Java,但 Firebase 简单登录库目前仅支持 Android。大多数人不在移动设备上运行时使用自定义登录。您能详细说明您要完成的工作吗?