Namun saat kita menerapkan pada Project Games sering mengalami kendala misalnya Score atau nilai tidak tersimpan. Bahkan ada yang tidak bisa terhubung langsung ke Play Games. Keadaan seperti ini pernah kami alami dalam menerapkan Leaderboard game.
Oleh Sebab itu artikel ini kami tulis untuk membantu anda jika mengalami kesulitan.
Sebelumnya anda dapat membaca artikel kami mengenai Leaderboard Game : Penerapan di Games menggunakan Android Studio
Pada kesempatan kali ini kami akan membahas tiga permasalahan umum yang menyebabkan Error pada Leaderboards yaitu:
1. BaseGameActivity Tidak Dipasang
2. Kesalahan pada Build.Gradle
3. Tidak terhubung dengan GoogleApiClient
Permasalahan Error Leaderboards
Sebenarnya ada beberapa penyebab sehingga Leaderboards game tidak terhubung dengan Play game. Untuk itu kita akan melihat satu persatu permasalahan yang menjadi kendala dalam penerapan diu dalam game.
1. BaseGameActivity Tidak Dipasang
Salah satu penyebab utama yang membuat Leaderboard serta Achievement tidak terhubung yakni anda tidak memasang BaseGameActivity di dalam class java. BaseGameActivity merupakan "otak" utama untuk menghubungkan dengan Play Game.
Untuk saat ini kami tidak akan membahas satu demi satu script BaseGameActivity. Namun intinya anda perlu memasang BaseGameActivity pada class java. Anda dapat mendownload langsung folder BaseGameActivity di sini. Atau anda juga melihat secara langsung file di Github.
Setelah selesai mengunduh file anda hanya perlu menyalin ke dalam class java.
Setelah selesai mengunduh file anda hanya perlu menyalin ke dalam class java.
Penerapan BaseGameActivity cukup mudah, misalnya ekstensi package name com.androidstudio.games. Maka salinlah ke dalam folder GamesAnda → app → scr →main → java → com → anddroidstudio → games.
Folder tersebut adalah basegame dimana didalamnya terdapat tiga class java antara lain :
a. BaseGameActivity.java
b. GameHelper.java
c. GameHelperUtils.java
Setelah selesai menyalin seluruh data folder BaseGame hanya perlu menyesuaikan package name pada class java BaseGameActivity.
Dan terakhir ada perlu menyalin kode peringatan saat telah terhubung ke dalam String.xml. Kode yang versisdk maksud adalah sebagai berikut:
<string name="gamehelper_sign_in_failed">Gagal tersambung ke Google Play Game. Coba lagi</string>
<string name="gamehelper_app_misconfigured">Aplikasi salah dikonfigurasi. Periksa apakah nama paket dan sertifikat penandatanganan cocok dengan ID klien yang dibuat di Konsol Pengembang. Selain itu, jika aplikasi belum dipublikasikan, periksa apakah akun yang Anda coba masuk dengan tercantum sebagai akun penguji. Lihat log untuk informasi lebih lanjut.</string>
<string name="gamehelper_license_failed">Cek lisensi gagal</string>
<string name="gamehelper_unknown_error">Kesalahan yang tidak diketahui.</string>
<string name="gamehelper_app_misconfigured">Aplikasi salah dikonfigurasi. Periksa apakah nama paket dan sertifikat penandatanganan cocok dengan ID klien yang dibuat di Konsol Pengembang. Selain itu, jika aplikasi belum dipublikasikan, periksa apakah akun yang Anda coba masuk dengan tercantum sebagai akun penguji. Lihat log untuk informasi lebih lanjut.</string>
<string name="gamehelper_license_failed">Cek lisensi gagal</string>
<string name="gamehelper_unknown_error">Kesalahan yang tidak diketahui.</string>
copy seluruh script di atas dan paste ke res → value → string.xml. Jika semuanya ada sudah terapkan untuk pemasangan BaseGameActivity kami yakin Gamesnya suda dapat terhubung ke Play Games.
Apabila cara pertama sudah anda terapkan dan masih terkendala kemungkinan permasalahan masih ada dan ada bisa membaca point kedua.
2. Kesalahan pada Build.Gradle
Sebelumnya kami pernah mengalami error saat melakukan build apk pada android studio yang mana mengeksekusi project Game. Hal tersebut menjadikan pengalaman menjadi sebuah tulisan kali ini. Dimana kesalahan muncul pada Build.gradle yang masih kurang lengkap untuk sebuah project games.
Beberapa file penting yang harus tambahkan pada build.gradle (Module:app) yaitu
- multiDexEnabled
- dexOptions
- lintOptions
- play-services
Untuk selengkapnya ada hanya perlu menyalin script yang sudah kami bold berikut ke dalam build.gradle:
android {
compileSdkVersion 25
buildToolsVersion "25.0.3"
versionName "1.1.0"
multiDexEnabled true
}
dexOptions {
javaMaxHeapSize "4g"
}
lintOptions {
abortOnError false
}
compileSdkVersion 25
buildToolsVersion "25.0.3"
versionName "1.1.0"
multiDexEnabled true
}
dexOptions {
javaMaxHeapSize "4g"
}
lintOptions {
abortOnError false
}
Kemudian salin juga play service dan multidex yang sudah versisdk bold pada dependencies build.gradle
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:support-v4:25.1.0'
compile 'com.google.android.gms:play-services:+'
compile 'com.android.support:multidex:1.0.1'
}
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:support-v4:25.1.0'
compile 'com.google.android.gms:play-services:+'
compile 'com.android.support:multidex:1.0.1'
}
Jika sudah menyalin seluruh data pada build.gradle silakan anda sync now project dan tunggu hingga proses sinkronisasi selesai.
3. Tidak terhubung dengan GoogleApiClient
Misalnya kami akan menggunakan mclient saat menggunakan GoogleApiClient. Oleh Sebab itu cukup memasang perintah berikut dibawah public class utama :
GoogleApiClient mclient;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.level_activity);
mclient = getApiClient();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.level_activity);
mclient = getApiClient();
Selanjutnya anda tinggal memanggil ulang dengan lebih singkat yaitu mclient.
Sebagai contoh lagi Kami ingin membuka Daftar Leaderboard maka cukup menggunakan script berikut:
if (mclient.isConnected()) {
startActivityForResult(Games.Leaderboards.getLeaderboardIntent(
getApiClient(), getString(R.string.leaderboard_quiz_app)),
1);}
startActivityForResult(Games.Leaderboards.getLeaderboardIntent(
getApiClient(), getString(R.string.leaderboard_quiz_app)),
1);}
Demikian dulu mengenai postingan kami Mengatasi Error Leaderboards dan Achievement Games. Jika dari beberapa point di atas belum memberikan solusi dari permasalahan Leaderboard silakan anda berkomentar.
Show Parser Hide Parser