所以我在将scoreloop集成到我的游戏中时遇到了一些问题。我使用用c ++编写的cocos2dx并使用ndk。主应用程序类派生自activity而不是android.app.application。添加按钮到布局并使用它来显示记分板或提交分数有效,但它不连接到互联网。我在这里找到了解决方案:scoreloop support forum或更具体的
是的,使用libgdx似乎是个问题。 libgdx带来了自己的Application类,它实际上源自Android的Activity,而不是Application。来自libgdx的helloworld示例根本没有附带(Android)Application类,这里是如何添加一个:
创建一个扩展android.app.Application的新类(不是com.badlogic.gdx.backends.android.AndroidApplication)
在AndroidManifest.xml中找到标记和创建的类的名称作为属性:android:name =“YourApplication”
将public void onCreate()方法添加到该类并在那里初始化Scoreloop。
所以我创建了这个:
public class scoreLooped extends android.app.Application{
public void onCreate(Bundle savedInstanceState){
ScoreloopManagerSingleton.init(this, "redacted");
}
public void onTerminate()
{
ScoreloopManagerSingleton.destroy();
}
}
我从我的主要活动类创建这个类:
public class wordsweeper extends Cocos2dxActivity implements OnScoreSubmitObserver{
private Cocos2dxGLSurfaceView mGLView;
private static scoreLooped a;
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
wordsweeper.a = new scoreLooped();
//Set the observer equal to an instance of this class
ScoreloopManagerSingleton.get().setOnScoreSubmitObserver(this);
,最后一行是崩溃的地方,出现错误“引起:java.lang.IllegalStateException:必须先调用ScoreloopManagerSingleton.init()”所以很明显我的scoreLooped类不会调用scoreloopmanager。我已经考虑过使用scorelooped类来提交,检索记分板,但似乎在没有扩展活动的情况下我不能这样做。我对java很陌生,所以我可能会遗漏一些明显的东西,所以如果有人能指出我正确的方向,那将会很棒。
答案 0 :(得分:0)
您似乎需要创建自己的Application类并在那里调用ScoreloopManagerSingleton.init()
。请参阅此处的答案,其中引用了一些示例文档:http://support.scoreloop.com/discussions/problems/789-illegalstateexception-scoreloopmanagersingletoninit-can-be-called-only-once