簡體   English   中英

從其他類調用靜態方法

[英]calling static methods from other classes

所以我在將scoreloop集成到我的游戲時遇到了一些問題。 我使用用c ++編寫並使用ndk的cocos2dx。 主應用程序類是從活動派生的,而不是從android.app.application派生的。 在布局中添加按鈕並使用它調出記分板或提交分數是可行的,但它無法連接到互聯網。 我在這里找到了解決方案: scoreloop支持論壇或更具體地說

是的,使用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的新手,所以我可能會遺漏一些顯而易見的東西,因此如果有人可以向我指出正確的方向,那就太好了。

看來您需要創建自己的Application類,然后在其中調用ScoreloopManagerSingleton.init() 請參閱此處的答案,該參考文獻引用了一些示例文檔: http : //support.scoreloop.com/discussions/problems/789-illegalstateexception-scoreloopmanagersingletoninit-can-be-call-only-once

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM