Bagaimana saya bisa mengatasi kesalahan ini?
Disebabkan oleh: java.lang.illegalargumentexception 11-01 11:08:12.845: E/AndroidRuntime(28885): Disebabkan oleh: java.lang.IllegalStateException: meta-tag data di aplikasi's AndroidManifest.xml tidak memiliki nilai yang tepat. Diharapkan 4030500 tetapi ditemukan 0. Anda harus memiliki pernyataan berikut dalam
elemen: <meta-data android:name="com.google.android.rups.versi" android:nilai="@integer/google_play_services_version" />
google-play-services_lib Nyata:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.google.android.gms"
android:versionCode="4030530"
android:versionName="4.0.30 (889083-30)" >
<uses-sdk android:minSdkVersion="8"/>
</manifest>
public void loginGooglePlus() {
aHelper.setup(this, GameHelper.CLIENT_APPSTATE | GameHelper.CLIENT_GAMES);
mHelper = aHelper.getAppStateClient();
//crash is here
mHelper.connect();
}
Penuh error log:
11-01 11:38:13.507: E/AndroidRuntime(31297): FATAL EXCEPTION: main
11-01 11:38:13.507: E/AndroidRuntime(31297): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.company.application.android.aja/com.company.application.android.aja.BeetleBattleAndroidActivity}: java.lang.IllegalStateException: The meta-data tag in your app's AndroidManifest.xml does not have the right value. Expected 4030500 but found 0. You must have the following declaration within the <application> element: <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
11-01 11:38:13.507: E/AndroidRuntime(31297): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2077)
11-01 11:38:13.507: E/AndroidRuntime(31297): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2104)
11-01 11:38:13.507: E/AndroidRuntime(31297): at android.app.ActivityThread.access$600(ActivityThread.java:134)
11-01 11:38:13.507: E/AndroidRuntime(31297): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1247)
11-01 11:38:13.507: E/AndroidRuntime(31297): at android.os.Handler.dispatchMessage(Handler.java:99)
11-01 11:38:13.507: E/AndroidRuntime(31297): at android.os.Looper.loop(Looper.java:154)
11-01 11:38:13.507: E/AndroidRuntime(31297): at android.app.ActivityThread.main(ActivityThread.java:4624)
11-01 11:38:13.507: E/AndroidRuntime(31297): at java.lang.reflect.Method.invokeNative(Native Method)
11-01 11:38:13.507: E/AndroidRuntime(31297): at java.lang.reflect.Method.invoke(Method.java:511)
11-01 11:38:13.507: E/AndroidRuntime(31297): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:965)
11-01 11:38:13.507: E/AndroidRuntime(31297): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:732)
11-01 11:38:13.507: E/AndroidRuntime(31297): at dalvik.system.NativeStart.main(Native Method)
11-01 11:38:13.507: E/AndroidRuntime(31297): Caused by: java.lang.IllegalStateException: The meta-data tag in your app's AndroidManifest.xml does not have the right value. Expected 4030500 but found 0. You must have the following declaration within the <application> element: <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
11-01 11:38:13.507: E/AndroidRuntime(31297): at com.google.android.gms.common.GooglePlayServicesUtil.n(Unknown Source)
11-01 11:38:13.507: E/AndroidRuntime(31297): at com.google.android.gms.common.GooglePlayServicesUtil.isGooglePlayServicesAvailable(Unknown Source)
11-01 11:38:13.507: E/AndroidRuntime(31297): at com.google.android.gms.internal.de.connect(Unknown Source)
11-01 11:38:13.507: E/AndroidRuntime(31297): at com.google.android.gms.appstate.AppStateClient.connect(Unknown Source)
11-01 11:38:13.507: E/AndroidRuntime(31297): at com.company.application.android.aja.BeetleBattleAndroidActivity.loginGooglePlus(BeetleBattleAndroidActivity.java:153)
11-01 11:38:13.507: E/AndroidRuntime(31297): at com.company.application.android.aja.BeetleBattleAndroidActivity.onCreate(BeetleBattleAndroidActivity.java:143)
11-01 11:38:13.507: E/AndroidRuntime(31297): at android.app.Activity.performCreate(Activity.java:4509)
11-01 11:38:13.507: E/AndroidRuntime(31297): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1050)
11-01 11:38:13.507: E/AndroidRuntime(31297): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2041)
11-01 11:38:13.507: E/AndroidRuntime(31297): ... 11 more
Anda perlu menambahkan kode berikut di manifes:
<application>
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
...
</application>
EDIT:
Informasi ini dapat ditemukan di logcat error msg serta pada Pengaturan Google Play Jasa (Terima kasih Brais Gabin)
@Benoit'yang menjawab memiliki solusi yang tepat saya menjawab dengan pengetahuan tambahan:
1. salah satu cara sebagai Benoit jawab tambahkan berikut ini ke dalam aplikasi tag AndroidManifest.xml
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
2. kita dapat langsung menambahkan kode seperti versi
<meta-data android:name="com.google.android.gms.version" android:value="4030500" />
4030500 adalah versi kode yang disimpan di dalam
google-play-services_lib>res>nilai>version.xml
Seperti
<integer name="google_play_services_version">4030500</integer>
Kesimpulan: Terbaru google play services membutuhkan nama versi, yang akan disebutkan menggunakan <meta-data .. />
di dalam AndroidManifest.xml
Catatan: saya akan sangat menyarankan untuk menggunakan cara 1
Beberapa hal yang berubah sejak anda mengajukan pertanyaan itu. Jika anda're menggunakan Google Play services 7.0 atau yang lebih baru, Gradle akan secara otomatis menggabungkan memanifestasikan dan fasilitas yang diperlukan meta-data untuk anda.
Mengutip Ian Lake:
(...) layanan Google Play 7.0 juga memiliki satu fitur hemat waktu jika anda're menggunakan Gradle: secara otomatis termasuk
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version"/>
entri anda AndroidManifest.xml untuk anda - tidak perlu secara manual menambahkan ini! Contoh sempurna dari yang sederhana Terwujud penggabungan dimana perpustakaan dapat add diperlukan meta-data, penerima, perizinan, dan apa pun yang mereka terbuat perlu - satu hal yang kurang untuk lupa!
Catatan: hal ini tidak berlaku untuk permainan lengkap-jasa atau play-services-semua-memakai AARs - hanya butiran AARs ini dibangun di.
Hanya pastikan untuk menambahkan kode di bawah dua meta-data kategori ke 'anda' aplikasi's AndroidManifest.xml
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="YOUR_API_KEY"/>
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version"/>
Solusi ini bekerja untuk saya.
Aku diimpor saya ada proyek dari Eclipse ke Android Studio, Di proyek Eclipse Integers.xml
itu mengandung hardcoded nilai sebagai berikut
<integer name="google_play_services_version">5089000</integer>
menyebabkan konflik versi dengan versi terbaru dari Play Services yang sedang dibangun oleh Android Studio. setelah menghapus baris ini dari Integers.xml
itu mulai bekerja untuk saya.
Jika anda masih mengalami error coba yang satu ini.
ini bekerja untuk saya
<meta-data
tools:replace="android:value"
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
Aku membuat file "versi.xml" di res/nilai-nilai folder yang disertakan copy dari layanan google dan disisipkan kode:
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<integer name="google_play_services_version">4030500</integer>
</resources>
salinan asli terjawab file dan itu tidak memecahkan masalah saya