Das Hauptziel meines Projekts ist es, ein Unity-Plugin zu erstellen, das Google Fitness Schrittzähler API verwenden kann. Es muss einige Funktionen wie: tägliche Schritte zählen, vollständige Schritte, speichern Schritt Betrag auf dem Google-Konto und schließlich die wichtigsten und die schwierigsten sendenden Benachrichtigungen, wenn Schritte Menge einen bestimmten Wert erreicht haben.Android-Plugin mit Google Fitness-API für Unity3D
Ich entschied mich, ein Android-Plugin mit laufenden Hintergrund-Service zu machen, der in der Lage sein wird, diese Benachrichtigungen wie oben erwähnt zu senden, aber ich stieß auf ein Problem am Anfang dieses Projekts. Es gibt ein Problem mit der Initialisierung von Google-Diensten, das perfekt funktioniert, wenn ich es in der nativen Android-App verwende, aber wenn ich versuche, es als Android-Bibliothek in Unity zu verwenden, schlägt es immer fehl.
logcat Fehler:
06-05 13:49:27.991 15144-15144/? E/GMPM: GoogleService failed to initialize, status: 10, Missing an expected resource: 'R.string.google_app_id' for initializing Google services. Possible causes are missing google-services.json or com.google.gms.google-services gradle plugin.
06-05 13:49:27.991 15144-15144/? E/GMPM: Scheduler not set. Not logging error/warn.
06-05 13:49:28.005 15144-15158/? E/GMPM: Uploading is not possible. App measurement disabled
ich den Schlüssel für dieses Problem wurde vielleicht denken irgendwie in der Google Developers-Konsole generierten Daten (AppIDs, SHAs etc.) aus, um „google-services.json“ Datei in Unity, aber .aar-Bibliothek, die von Android-Studio generiert wurde, enthält diese Informationen in res/values / strings-Datei, wie ich denke, es sollte.
ich viele wahrscheinlichen Lösungen teste einschließlich:
android Projekt von der Einheit zu exportieren und das Hinzufügen von meiner Bibliothek Modul, um es
meine Bibliothek als .jar-Datei bereitstellt und „google-services.json “separat
Bereitstellung direkt notwendigen Daten in Unity in res/Werte/Zeichenketten-Datei
Zugabe zu exportierte Projekt
mit dem gleichen Fehler Ended, wie ich oben erwähnt.
Mache ich etwas falsch, oder gibt es einen ganz anderen Ansatz für dieses Problem?
Edit:
Android Manifest von Unity (Plugins/Android):
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="<UNITY APP PACKAGE NAME>" android:versionName="1.0" android:versionCode="1" android:installLocation="preferExternal">
<supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:xlargeScreens="true" android:anyDensity="true" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<application android:theme="@style/UnityThemeSelector" android:icon="@drawable/app_icon" android:label="@string/app_name" android:debuggable="true" android:isGame="true" android:banner="@drawable/app_banner">
<activity android:name="<PLUGIN PACKAGE NAME + CLASS NAME>" android:label="@string/app_name" android:screenOrientation="fullSensor" android:launchMode="singleTask" android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.LEANBACK_LAUNCHER" />
</intent-filter>
<meta-data android:name="unityplayer.UnityActivity" android:value="true" />
</activity>
</application>
<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="23" />
<uses-feature android:glEsVersion="0x00020000" />
<uses-feature android:name="android.hardware.touchscreen" android:required="false" />
<uses-feature android:name="android.hardware.touchscreen.multitouch" android:required="false" />
<uses-feature android:name="android.hardware.touchscreen.multitouch.distinct" android:required="false" />
</manifest>
Welche Daten haben Sie der Datei res/values / strings von Unity zur Verfügung gestellt? und wie sieht dein 'android manifest' aus? – Hristo