我目前正在开发我的第一个游戏(我不会无耻地推广),但我正试图建立一个排行榜,但当我尝试初始化我的GameHelper时,我得到了一个例外。我找不到任何答案,如果有任何帮助,我将不胜感激。
代码:
package com.aidanstrong.runner;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.backends.android.AndroidApplication;
import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration;
import com.google.android.gms.games.Games;
import com.google.example.games.basegameutils.GameHelper;
import com.google.example.games.basegameutils.GameHelper.GameHelperListener;
public class AndroidLauncher extends AndroidApplication implements GameHelperListener, PlayServices{
private final static int requestCode = 1;
private GameHelper gameHelper;
@Override
protected void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
initialize(new MyGame(this), config);
gameHelper = new GameHelper(this,GameHelper.CLIENT_ALL);
gameHelper.enableDebugLog(true);
gameHelper.setup(this);
}
@Override
public void onStart(){
super.onStart();
gameHelper.onStart(this);
}
@Override
public void onStop(){
super.onStop();
gameHelper.onStop();
}
@Override
public void onActivityResult(int request, int response, Intent data) {
super.onActivityResult(request, response, data);
gameHelper.onActivityResult(request, response, data);
}
@Override
public boolean signIn() {
return gameHelper.isSignedIn();
}
@Override
public void logIn() {
try {
runOnUiThread(new Runnable(){
public void run() {
gameHelper.beginUserInitiatedSignIn();
}
});
} catch (final Exception ex) {
}
}
@Override
public void submitScore(int score) {
Games.Leaderboards.submitScore(gameHelper.getApiClient(),"CgkIlKy-68IeEAIQAQ",score);
}
@Override
public void getLeaderboard() {
Games.Leaderboards.getLeaderboardIntent(gameHelper.getApiClient(),"CgkIlKy-68IeEAIQAQ");
}
@Override
public void onSignInFailed() {
}
@Override
public void onSignInSucceeded() {
}
}
我收到的错误是
“java.lang.RuntimeException:无法实例化活动组件信息{com.aidanstrong.runner/com.aidanstrong.runner.AndroidLauncher}:java.lang.NullPointerException:尝试在第21行的空对象引用上调用虚拟方法'android.content.Context.getApplicationContext()”。
编辑:我尝试了一下,得到了一个新的错误,将构造函数中的所有语句移动到gameHelper之前。设置(此)我得到错误
致命的例外:主要过程:com.aidanstrong.runner,PID:11950java.lang.NoSuchMEDADError:没有直接的方法(Ljava/lang/String; Lcom/谷歌/Android/gms/通用/api/Api$zza; Lcom/谷歌/Android/gms/通用/api/Api$zzc;)类中的V Lcom/谷歌/Android/gms/通用/API/Api;或其超级类(声明的'com.google.android.gms.common.api.Api'出现在 /data/app/com.aidanstrong.runner-1/split_lib_dependencies_apk.apk)在com.google.android.gms.plus.Plus.(未知来源)在com.google.example.games.basegameutils.GameHelper.createApiClientBuilder(GameHelper.java:276)在com.google.example.games.basegameutils.GameHelper.setup(GameHelper.java:309)在com.aidanstrong.runner.Androidauncher.on创建(Androidauncher.java:32)在android.app.ctivity.perform创建(ctivity.java:6270)在android.app.我nstrumentation.callActivityOn创建(仪器. java: 1130)在android. app.在android. app.在android. app.wrap11(ActivityThread. java)在android. app.ActivityThread$H. handleMessage(ActivityThread. java: 1363)at android. os.在android. os.在android. app.ActivityThread. main(ActivityThread. java: 5491)在java. lang.反射。方法调用(本机方法)在com. android. interal. os。ZygoteInit$method odAndArgsCaller. run(ZygoteInit. java: 728)在com. android. interal. os。主要(ZygoteInit. java: 618)'
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.aidanstrong.runner"
android:versionCode="6"
android:versionName="1.22" >
<uses-sdk android:minSdkVersion="15" android:targetSdkVersion="25" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.VIBRATE"/>
<application
android:allowBackup="true"
android:icon="@drawable/secondicon"
android:label="Jump Man"
android:theme="@style/GdxTheme" >
<activity
android:name="com.aidanstrong.runner.AndroidLauncher"
android:label="Jump Man"
android:screenOrientation="portrait"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<meta-data android:name="com.google.android.gms.games.APP_ID" android:value="@string/app_id" />
<meta-data android:name="com.google.android.gms.appstate.APP_ID" android:value="@string/app_id" />
</application>
将元数据保存在
<meta-data android:name="com.google.android.gms.games.APP_ID" android:value="@string/app_id" />
<meta-data android:name="com.google.android.gms.appstate.APP_ID" android:value="@string/app_id" />
删除默认的构造函数
public class AndroidLauncher extends AndroidApplication implements IGoogleServices {
private GameHelper gameHelper;
private final static int REQUEST_CODE_UNUSED = 9002;
private static final String TAG = "[" + AndroidLauncher.class.getSimpleName() + "]";
@Override
protected void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
gameHelper = new GameHelper(this, GameHelper.CLIENT_GAMES);
gameHelper.enableDebugLog(true);
GameHelper.GameHelperListener gameHelperListener = new GameHelper.GameHelperListener() {
@Override
public void onSignInSucceeded(){}
@Override
public void onSignInFailed() {}
};
//gameHelper.setMaxAutoSignInAttempts(0);
gameHelper.setup(gameHelperListener);
AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
initialize(new MyGame(this), config);
}
@Override
protected void onStart() {
super.onStart();
gameHelper.onStart(this);
}
@Override
protected void onStop() {
super.onStop();
gameHelper.onStop();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
gameHelper.onActivityResult(requestCode, resultCode, data);
}
@Override
public void signIn() {
try {
runOnUiThread(new Runnable() {
@Override
public void run() {
gameHelper.beginUserInitiatedSignIn();
}
});
}
catch (Exception e) {
Gdx.app.log("MainActivity", "Log in failed: " + e.getMessage() + ".");
}
}
@Override
public void signOut() {
try {
runOnUiThread(new Runnable() {
@Override
public void run() {
//gameHelper.signOut();
}
});
}
catch (Exception e) {
Gdx.app.log("MainActivity", "Log out failed: " + e.getMessage() + ".");
}
}
@Override
public void submitScore(long score) {
if (isSignedIn()) Games.Leaderboards.submitScore(gameHelper.getApiClient(), getString(R.string.leaderboard_id), score);
}
@Override
public void showScores() {
if(isSignedIn())
startActivityForResult(Games.Leaderboards.getLeaderboardIntent(gameHelper.getApiClient(), getString(R.string.leaderboard_id)), REQUEST_CODE_UNUSED);
else
signIn();
}
@Override
public boolean isSignedIn() {
return gameHelper.isSignedIn();
}
@Override
public void start() {
gameHelper.onStart(this);
}
IGoogleServices是
core
模块中的一个接口,我使用它与android
模块进行接口。
我正试着数字符串中元音的数目。问题是它编译正确,但当我运行它时,命令窗口显示“countvowels.main(countvowels.java:25)处线程'main'java.lang.NullPointerException”。 是什么导致了这一点,我该如何修复它,我该如何防止它在未来再次发生? 第25行是我的if语句:
> 单击 受保护得空onPrepareDialog(int id,Dialog Dialog) 受保护的对话框onCreateDialog(int id) 如果我对timepickerdialog代码做了什么错误,请告诉我。
问题内容: 什么是Java空指针异常,它是如何发生的?如何修改? 问题答案: 当我们创建一个引用类型的变量时,实际上是创建了一个指向该变量的一个指针,例如: 这种情况下是,tom 其实是指向Person对象的一个指针。 如果我们访问一个没有初始化的对象时,就会出现空指针异常。例如,我们声明了一个Person对象tom,而没有给tom赋值(初始化),这样再调用tom的方法是就会出现空指针异常。 输出
问题内容: 有可能这可能是一个双重问题。我将String变量初始化为null。我可能会或可能不会使用一个值更新它。现在我想检查此变量是否不等于null以及我尝试执行的操作是否会得到null指针异常。空指针异常,因为它代价高昂。是否有任何有效的解决方法.TIA 问题答案: 如果您使用 你 不会 得到。 我怀疑你在做什么: 这是因为null 而引发,而不是因为null。 如果仍然无法解释,请发布您用于
我已经更新了我的项目中的一些依赖关系之后,我的Hibernate配置类显示Nullpointerx的。 我将SpringDataJPA存储库与hibernate一起使用,已经超过24小时了,仍然没有找到任何关于小问题的适当解决方案。 我已经尝试过的一些解决方案:- 使用@bean(name=“entityManagerFactory”)提供bean名称 我面临的问题 波姆。xml文件 配置类 db