Я видел несколько примеров, когда люди получают доступ к XML-файлам, подобным ниже, из java.Доступ к xml-строкам из java
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">YYYYYYYYY</string>
<string name="app_id">999999999999</string>
<string name="leaderboard_id">XXXXXXXXXXX</string>
</resources>
Я видел использование пакета android.R утверждало, что в выборке успешной строки в пределах LibGDX установок. Тем не менее, я продолжаю работать в error: cannot find symbol variable leaderboard_id
, leaderbord_id - единственная переменная, которую я сейчас пытаюсь использовать.
Я пробовал очистить свой проект без ошибок, но после его создания я получаю вышеуказанную ошибку каждый раз, когда я пытаюсь получить к ней доступ.
Мой strings.xml
проживает в ../android/res/values/
, и я пытаюсь получить к нему доступ, как getString(R.string.leaderboard_id)
без успеха. Кроме того, я попробовал Sync project with gradle
и различные API и сборки.
Я использую официальный Google BaseGameUtils, который дает bootstrap warning about classpath not being set
, но я не вижу никаких проблем с этим. Я в какой-то момент сомневаюсь, что это возможно или изменилось, поскольку сообщения об этом, которые я нашел, являются старыми.
Вот мой полный код:
AndroidLauncher.java
package net.madmenyo.multiplayertest.android;
import android.content.Intent;
import android.os.Bundle;
import android.R;
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 net.madmenyo.multiplayertest.IGoogleServices;
import net.madmenyo.multiplayertest.MultiplayerTest;
public class AndroidLauncher extends AndroidApplication implements IGoogleServices {
private GameHelper _gameHelper;
private final static int REQUEST_CODE_UNUSED = 9002;
@Override
protected void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Create game helper
_gameHelper = new GameHelper(this, GameHelper.CLIENT_GAMES);
_gameHelper.enableDebugLog(false);
AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
initialize(new MultiplayerTest(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() == true)
{
Games.Leaderboards.submitScore(_gameHelper.getApiClient(), getString(R.string.leaderboard_id), score); //Error cannot find symbol variable leaderboard_id
getApplicationContext().getResources().getString(R.string.leaderboard_id); //Error
startActivityForResult(Games.Leaderboards.getLeaderboardIntent(_gameHelper.getApiClient(), getString(R.string.leaderboard_id)), REQUEST_CODE_UNUSED); //Error
}
else
{
}
}
@Override
public void showScores() {
if (isSignedIn() == true)
startActivityForResult(Games.Leaderboards.getLeaderboardIntent(_gameHelper.getApiClient(), getString(R.string.leaderboard_id)), REQUEST_CODE_UNUSED); //Error
else
{
}
}
@Override
public boolean isSignedIn() {
return _gameHelper.isSignedIn();
}
}
'GetString (R.string.leaderboard_id) без success'. Можете ли вы это доказать? –
@JaredBurrows Как я могу это доказать? У меня есть это: 'getString (R.string.leaderboard_id)' с 'leaderboard_id', выделенным красным цветом. Когда я запускаю его, я получаю ошибку «Ошибка: (100, 90): не могу найти символьную переменную leaderboard_id' – Madmenyo
Вы пробовали« gradlew clean assembleDebug »? –