调用其他类的静态方法
所以我有一些问题集成scoreloop到我的游戏。我使用C++编写的cocos2dx并使用了ndk。主应用程序类是从activity而不是从android.app.application派生的。将一个按钮添加到布局并使用它来调出记分牌或提交分数工程,但它不连接到互联网。我发现这里的解决方案:scoreloop support forum或更具体地说调用其他类的静态方法
是的,使用libgdx似乎是问题。 libgdx带来了它自己的应用程序类,它实际上是从Android的活动派生的,而不是应用程序。从libgdx HelloWorld示例不来的(安卓),应用类可言,这里是如何添加一个:
创建一个扩展android.app.Application一个新的类(不com.badlogic.gdx。 backends.android.AndroidApplication)
在AndroidManifest.xml中找到标签和创建的类作为属性的名称:Android:NAME =“YourApplication”
方法添加公共无效的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引发:ScoreloopMana gerSingleton.init()必须首先调用“显然,我的scoreLooped类不会调用scoreloopmanager。我曾考虑过使用scorelooped类提交,检索记分板,但似乎我不能在不扩展活动的情况下做到这一点。我对Java很新,所以我可能会漏掉一些明显的东西,所以如果有人能指出我的方向是正确的,那就太好了。
看来您需要创建自己的Application类并在那里调用ScoreloopManagerSingleton.init()
。请参阅此处的答案,其中引用了一些示例文档:http://support.scoreloop.com/discussions/problems/789-illegalstateexception-scoreloopmanagersingletoninit-can-be-called-only-once