在尝试构建我的第一个游戏应用程序时,我遇到了一些超出我编程知识的问题。
我使用Unity制作游戏,并使用eclipse制作了一个有效的admob插件,用于统一使用。我按照this教程进行了操作。
到目前为止没有任何问题,而且根据我对制作统一插件的新知识,我决定根据google found here的教程制作第二个插件。
然而,为了我的插件工作,我不能"扩展"插件的类。这让我感到困惑,因为如果我不使用"延伸"我没有onCreate,onActivityResult等等。回调。
我知道必须有办法让这项工作,但我对java的了解太少,无法解决这个问题。
我已经尝试了各种各样的事情,至少要编译代码,但基本上我只是在黑暗中摇摆不定。
我的代码已经走了这么远,不用说它只是让我的游戏崩溃,当我调用Test()时:
package google.signin;
import com.google.android.gms.ads.*;
import com.google.example.games.basegameutils.GameHelper;
import com.google.example.games.basegameutils.GameHelper.GameHelperListener;
import com.unity3d.player.UnityPlayer;
import android.app.Activity;
import android.os.Bundle;
import android.content.Intent;
public class SignIn {
private Activity activity; //Store the android main activity
private GameHelper mHelper;
public SignIn()
{
activity = UnityPlayer.currentActivity;
activity.runOnUiThread(new Runnable() {
public void run(){
Activity subactivity = new Activity() {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// create game helper with all APIs (Games, Plus, AppState):
mHelper = new GameHelper(this, GameHelper.CLIENT_ALL);
GameHelperListener listener = new GameHelper.GameHelperListener() {
@Override
public void onSignInSucceeded() {
// handle sign-in success
}
@Override
public void onSignInFailed() {
// handle sign-in failure (e.g. show Sign In button)
}
};
mHelper.setup(listener);
}
@Override
protected void onStart() {
super.onStart();
mHelper.onStart(this);
}
@Override
protected void onStop() {
super.onStop();
mHelper.onStop();
}
@Override
protected void onActivityResult(int request, int response, Intent data) {
super.onActivityResult(request, response, data);
mHelper.onActivityResult(request, response, data);
}
};
}
});
}
public void Test()
{
activity.runOnUiThread(new Runnable() {
public void run(){
mHelper.beginUserInitiatedSignIn();
}
});
}
}
Logcat说这是问题所在:
07-14 11:19:10.786: E/AndroidRuntime(31262): FATAL EXCEPTION: main
07-14 11:19:10.786: E/AndroidRuntime(31262): Process: com.ChocolatePinecone.PrincessRescueRun, PID: 31262
07-14 11:19:10.786: E/AndroidRuntime(31262): java.lang.Error: FATAL EXCEPTION [main]
07-14 11:19:10.786: E/AndroidRuntime(31262): Unity version : 4.3.4f1
07-14 11:19:10.786: E/AndroidRuntime(31262): Device model : samsung GT-I9505
07-14 11:19:10.786: E/AndroidRuntime(31262): Device fingerprint: samsung/jfltexx/jflte:4.4.2/KOT49H/I9505XXUGNF1:user/release-keys
07-14 11:19:10.786: E/AndroidRuntime(31262): Caused by: java.lang.NullPointerException
07-14 11:19:10.786: E/AndroidRuntime(31262): at google.signin.SignIn$2.run(SignIn.java:78)
07-14 11:19:10.786: E/AndroidRuntime(31262): at android.os.Handler.handleCallback(Handler.java:733)
07-14 11:19:10.786: E/AndroidRuntime(31262): at android.os.Handler.dispatchMessage(Handler.java:95)
07-14 11:19:10.786: E/AndroidRuntime(31262): at android.os.Looper.loop(Looper.java:157)
07-14 11:19:10.786: E/AndroidRuntime(31262): at android.app.ActivityThread.main(ActivityThread.java:5356)
07-14 11:19:10.786: E/AndroidRuntime(31262): at java.lang.reflect.Method.invokeNative(Native Method)
07-14 11:19:10.786: E/AndroidRuntime(31262): at java.lang.reflect.Method.invoke(Method.java:515)
07-14 11:19:10.786: E/AndroidRuntime(31262): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
07-14 11:19:10.786: E/AndroidRuntime(31262): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
07-14 11:19:10.786: E/AndroidRuntime(31262): at dalvik.system.NativeStart.main(Native Method)
我认为它崩溃是因为onStart并且没有调用来自subactivity的所有东西。 我不知道我在这里做的事情是否正在解决这个问题的正确方向。在我继续采取波动之前,我希望有人可以启发我,或者至少给我一些指示去哪里......
答案 0 :(得分:0)
无论你的mHelper对象是什么,你都没有从我看到的东西中创建它。我之前从未使用过这门课,所以我不知道这个宣言是否合适,而是一个例子
mHelper = new GameHelper();