2013-12-22 6 views
7

Ich habe ein Plugin für Unity, die in Java geschrieben ist. In diesem Plugin muss ich die neue Google Advertisement ID bekommen, es zu tun, habe ich auf die Manifest-Datei hinzufügen:Kann Google Play-Dienste nicht auf Unity Java-Plugin verwenden

<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> 

Wenn ich kompilieren, wird Unity werfen Fehler:

Error building Player: CommandInvokationFailure: Failed to re-package resources. See the Console for details. 
/Applications/adt/sdk/build-tools/android-4.2.2/aapt package --auto-add-overlay -v -f -m - J gen -M AndroidManifest.xml -S "res" -I "/Applications/adt/sdk/platforms/android- 19/android.jar" -F bin/resources.ap_ 

stderr[ 
AndroidManifest.xml:21: error: Error: No resource found that matches the given name (at 'value' with value '@integer/google_play_services_version'). 
] 

ich auch versucht, das Google Play Services-Jar zum [lugins/Androif-Ordner hinzuzufügen, aber das hat nicht geholfen. Was ist der richtige Weg, um es zum Laufen zu bringen?

Antwort

-1

Sie benötigen ein neues Google Play Services-Bibliotheksprojekt, das mit Ihrem Projekt verknüpft ist, sodass während der Erstellung alle Ressourcen aus dem Projekt verfügbar sind. Sie haben definitiv ältere Bibliothek, weil google_play_services_version wurde erst kürzlich eingeführt. Und Sie können nicht einfach jar zu Ihrem Projekt hinzufügen - es wird nicht funktionieren. Fügen Sie einfach Google Play Services als ewige Bibliothek hinzu, wie dokumentiert.

+1

Ich habe API-Ebene 19, die neueste. Außerdem benutze ich dieses Plugin in einem einfachen Android Java-Anwendungen und es funktioniert, in, ich verlinke die Lib von den Google Play-Dienste API, aber wie kann ich es in Einheit verbinden? – Dima

2

Kopieren Sie nicht alle Projekte in Ihre Plugins/Android.

  1. Konfigurationsdatei Manifest.xml zur richtigen Information. In Plugins/Android kopieren.

    <meta-data android:name="com.google.android.gms.games.APP_ID" 
           android:value="\ android app id " /> 
          <meta-data android:name="com.google.android.gms.appstate.APP_ID" 
            android:value="\ android app id " /> 
          <meta-data android:name="com.google.android.gms.version" 
           android:value="@integer/google_play_services_version" /> 
          <activity android:name="com.google.example.games.pluginsupport.SignInHelperActivity" 
    /> 
    
  2. Copy Google-Dienste jar spielen -> zu Plugins/Android

  3. Kopieren Sie alle res Ordner -> zu Plugins/Android/res

+0

Können Sie mir erklären, ob ich die "\ android app id" auf etwas setzen muss oder wie es ist? –

+0

Ich versuchte das oben und es hat nicht funktioniert. Ich habe das Snippet unverändert in den Application-Knoten in der Manifest.xml kopiert. Irgendeine Idee, was ich vermisse? –

+0

Android App ID ist eine Zeichenfolge, die Sie von der Google Developer Console erhalten können. Gehe hierhin https://developers.google.com/games/services/console/enabling -> Richte dein Spiel ein -> Erstelle Kunden-IDs –

25

diesen Fehler zu beheben, müssen Sie Kopieren Sie die Datei version.xml von android-sdk/extras/google/google_play_services/libproject/google-play-services_lib/res/values/ in Assets/Plugins/Android/res/values/ Ordner Ihres Unity-Projekts.

+1

Danke. hat für mich gearbeitet. – MicroEyes

+1

Awesome man .... –

+1

Ich habe versucht, nur die version.xml zu kopieren und versuchte den gesamten res-Ordner zu kopieren. Kein Glück. Was vermisse ich? –

1

Eine aktualisierte einfache Lösung:

Heute habe ich das gleiche Problem. Ich bemerkte, dass, wenn ich folder von android-sdk/extras/google/google_play_services/libproject/ mit dem Namen google-play-services_lib kopieren; Es gibt bereits diesen Ordner in Assets/Plugins/Android auf Einheit. Und der Name des kopierten Ordners soll goole-play-services_lib 1 sein.

Also ich habe nur diesen Ordner gelöscht, und es funktioniert gut.

Verwandte Themen