2017-06-05 22 views
7

के लिए Google फिटनेस एपीआई का उपयोग करके एंड्रॉइड प्लगइन मेरी परियोजना का मुख्य लक्ष्य एकता प्लगइन बनाना है जो Google फिटनेस स्टेप काउंटर एपीआई का उपयोग करने में सक्षम होगा। इसे कई सुविधाएं प्रदान करनी होंगी: दैनिक कदमों को गिनना, कुल कदम प्राप्त करना, Google खाते पर चरणों की बचत करना और आखिरकार सबसे महत्वपूर्ण और सबसे मुश्किल भेजने वाली अधिसूचनाएं जब चरण राशि निर्दिष्ट मूल्य तक पहुंच जाती है।यूनिटी 3 डी

मैंने चलने वाली पृष्ठभूमि सेवा के साथ एक एंड्रॉइड प्लगइन बनाने का निर्णय लिया है जो उपरोक्त वर्णित उन सूचनाओं को भेजने में सक्षम होगा, लेकिन मुझे इस परियोजना की शुरुआत में एक समस्या का सामना करना पड़ा। Google सर्विसेज प्रारंभ करने में कोई समस्या है, जो मैं मूल एंड्रॉइड ऐप में इसका उपयोग कर रहा हूं, लेकिन जब मैं इसे यूनिटी में एंड्रॉइड लाइब्रेरी के रूप में उपयोग करने की कोशिश कर रहा हूं तो यह हमेशा विफल रहता है।

logcat त्रुटि:

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 

मैं इस समस्या का उस कुंजी सोच रहा था किसी भी तरह डेटा (appIds, शास आदि) Google डेवलपर कंसोल में उत्पन्न से प्रदान करने के लिए किया जा सकता है "google-services.json" फ़ाइल एकता में, लेकिन .aar लाइब्रेरी जो एंड्रॉइड स्टूडियो से उत्पन्न हुई थी, में उन सूचनाओं को res/values ​​/ स्ट्रिंग्स फ़ाइल में शामिल किया गया है, जैसा कि मुझे लगता है कि यह चाहिए।

मैं सहित कई संभावित समाधान का परीक्षण किया गया था:

  • एकता से एंड्रॉयड परियोजना निर्यात और यह

  • करने के लिए अपने पुस्तकालय मॉड्यूल जोड़ने .jar फ़ाइल के रूप में मेरे पुस्तकालय प्रदान करने और "google-services.json "अलग

  • res/values ​​/ तार में एकता में सीधे आवश्यक डेटा उपलब्ध कराने के लिए फ़ाइल

  • निर्यात परियोजना

के रूप में मैं ऊपर उल्लेख किया है एक ही त्रुटि के साथ समाप्त करने के लिए इसे जोड़ने।

मैं कुछ गलत कर रहा हूँ, या हो सकता है इस समस्या का एक बिल्कुल अलग दृष्टिकोण है?

संपादित करें: एकता से

एंड्रॉयड प्रकट (प्लगइन्स/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> 
+0

कौन-सा डेटा के लिए प्रदान की 'Unity' के res/values ​​/ तार दायर की जाती है? और आपका 'एंड्रॉइड मेनिफेस्ट' कैसा दिखता है? – Hristo

उत्तर

1

विभिन्न उपकरणों मैं कैसे इस समस्या का सामना करने के लिए की खोज की है पर एक छोटे से अधिक परीक्षण के बाद। मेरे प्राथमिक परीक्षण उपकरणों दोनों पर लॉगकैट प्रत्येक बार जब भी कोई एप्लिकेशन इंस्टॉल हो जाता है तो यह त्रुटि दिखाती है। सीधे एकता या एंड्रॉइड स्टूडियो और Google Play Store के उन लोगों से निर्मित। ऐसा लगता है कि यह त्रुटि मेरी समस्या का कोई संबंध नहीं है।

समस्या यह है कि मैं गूगल लॉगिन विंडो पॉप-अप दिखाने के लिए अनुमति देने के लिए मेरे प्लगइन में UnityPlayerActivity विस्तार करने के लिए किया था।

+0

मुझे यह समस्या भी है। क्या आपने इसे हल किया? – lutfianasari

+0

मैं गूगल लॉगइन विंडो शो को बनाने में कामयाब रहे और मैं "कनेक्ट" कॉलबैक मिला है। मैं इस ट्यूटोरियल का उपयोग कर रहा था: https://code.tutsplus.com/tutorials/google-fit-for-android-reading-sensor-data--cms-25723 –

संबंधित मुद्दे