我刚刚将我的解析Android软件包从版本1.9.1升级到Parse提供的最新版本。我添加了FacebookUtils,TwitterUtils以及所有应用程序,除非我想使用Facebook登录,否则应用程序似乎有效。
它给了我这个错误:
java.lang.IllegalStateException: Callback already registered for <facebook>: com.parse.ParseFacebookUtils$1@1fce48e9
我没有改变任何东西,事实上当我恢复到我原来的1.9.1版本时,一切正常。
这是新Parse库中的一个错误吗?我该如何解决这个问题?
修改
logcat的:
0 java.lang.IllegalStateException: Callback already registered for <facebook>: com.parse.ParseFacebookUtils$1@2a6d3adb
1 at com.parse.ParseAuthenticationManager.register(ParseAuthenticationManager.java:35)
2 at com.parse.ParseUser.registerAuthenticationCallback(ParseUser.java:1089)
3 at com.parse.ParseFacebookUtils$ParseUserDelegateImpl.registerAuthenticationCallback(ParseFacebookUtils.java:562)
4 at com.parse.ParseFacebookUtils.initialize(ParseFacebookUtils.java:109)
5 at com.parse.ParseFacebookUtils.initialize(ParseFacebookUtils.java:92)
6 at com.me.bit.bitme.Views.LoginActivity.onFBLoginButtonClicked(LoginActivity.java:170)
7 at com.me.bit.bitme.Views.LoginActivity.access$200(LoginActivity.java:49)
8 at com.me.bit.bitme.Views.LoginActivity$3.onClick(LoginActivity.java:90)
9 at android.view.View.performClick(View.java:4803)
10 at android.view.View$PerformClick.run(View.java:19981)
11 at android.os.Handler.handleCallback(Handler.java:739)
12 at android.os.Handler.dispatchMessage(Handler.java:95)
13 at android.os.Looper.loop(Looper.java:135)
14 at android.app.ActivityThread.main(ActivityThread.java:5430)
15 at java.lang.reflect.Method.invoke(Native Method)
16 at java.lang.reflect.Method.invoke(Method.java:372)
17 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:913)
18 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:706)
答案 0 :(得分:0)
您应该将ParseFacebookUtils
初始化为应用类,而不是 AppCompatActivity 类。
您可以创建一个java类并将其命名为配置,在清单中设置其名称:
<application
android:name=".Configs"
...
Configs类看起来像这样:
public class Configs extends Application {
…
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ParseFacebookUtils.initialize(this);
…
}
答案 1 :(得分:0)
您应该将ParseFacebookUtils
初始化为Application类。
但是,只需通过try catch IllegalStateException
即可避免应用程序崩溃。
try {
ParseFacebookUtils.initialize(this);
} catch (IllegalStateException e) {
Log.d("MyApp", "Seems like ParseFacebookUtils already initialized");
}