2014-10-10 30 views
12

पर क्रैशलीटिक्स.प्रोपर्टीज़ में एपीआई कुंजी नहीं ढूंढ रहा है। मैं वर्तमान में एपीआई कुंजी स्विचिंग स्क्रिप्ट को here सुझा रहा हूं, स्वाद के बजाय निर्माण प्रकारों को छोड़कर। मेरे build.gradle इस तरह दिखता है:क्रैशलिटिक्स रनटाइम

... 
buildTypes { 
    debug { 
     ... 
     set("crashlyticsApiKey", "API_KEY_1") 
     set("crashlyticsApiSecret", "API_SECRET_1") 
    } 
    release { 
     ... 
     set("crashlyticsApiKey", "API_KEY_2") 
     set("crashlyticsApiSecret", "API_SECRET_2") 
    } 
} 
... 
productFlavors{...} 
... 
File crashlyticsProperties = new File("${project.projectDir.absolutePath}/crashlytics.properties") 

applicationVariants.all { variant -> 
    variant.productFlavors.each { flavor -> 
     def variantSuffix = variant.name.capitalize() 
     def generateResourcesTask = project.tasks.getByName("crashlyticsGenerateResources${variantSuffix}") 
     def generatePropertiesTask = task("crashlyticsGenerateProperties${variantSuffix}") << { 
      Properties properties = new Properties() 
      println "...copying apiKey for ${variant.name}" 
      properties.put("apiKey", variant.buildType.crashlyticsApiKey) 
      println "...copying apiSecret for ${variant.name}" 
      properties.put("apiSecret", variant.buildType.crashlyticsApiSecret) 
      properties.store(new FileWriter(crashlyticsProperties), "") 
     } 
     generateResourcesTask.dependsOn generatePropertiesTask 
     def cleanResourcesTask = project.tasks.getByName("crashlyticsCleanupResourcesAfterUpload${variantSuffix}") 
     cleanResourcesTask.doLast { 
      println "...removing crashlytics.properties" 
      crashlyticsProperties.delete() 
     } 
    } 
} 
... 

Gradle फ़ाइल सफलतापूर्वक बनाता है, और निर्माण के प्रकार के अनुसार सही जानकारी के साथ अद्यतन crashlytics.properties। Crashlytics.properties का उपयोग करने की यह विधि here का सुझाव दिया गया था, और ग्रेडल फ़ाइल में निर्भरताओं को शामिल करने के अलावा अन्य किसी भी अपडेट के बिना काम करने लगता है। हालांकि, जब Crashlytics.start(this) मुख्य गतिविधि से कहा जाता है, मैं एक क्रम अपवाद:

java.lang.RuntimeException: Unable to create application com.lookout.LookoutApplication: java.lang.IllegalArgumentException: Crashlytics could not be initialized, API key missing from AndroidManifest.xml. Add the following tag to your Application element 
<meta-data android:name="com.crashlytics.ApiKey" android:value="YOUR_API_KEY"/> 

एक स्थिर crashlytics.properties फाइल करने के लिए इसे नीचे स्ट्रिपिंग (यानी Gradle फ़ाइल में डायनामिक स्क्रिप्ट को दूर करने और सिर्फ एक apiKey होने और crashlytics.properties में apiSecret) एक ही त्रुटि उत्पन्न करता है, भले ही यह सफलतापूर्वक बनाता है।

क्या AndroidManifest में कोई बदलाव है या build.gradle फ़ाइल मुझे इसे crashlytics.properties की ओर इंगित करने के लिए बनाना चाहिए?

उत्तर

1

हालांकि यह मूल प्रश्न का उत्तर नहीं है (चूंकि इंस्टेंट रन 2014 में मौजूद नहीं था), तो आप पाएंगे कि इंस्टेंट रन समस्याएं पैदा कर सकता है। मेरे प्रक्रिया थी:

  • कपड़ा प्लग-इन इंस्टॉल
  • क्यों यह काम नहीं कर रहा था
  • स्विच fabric.properties फ़ाइल
  • को पता लगाने की कोशिश एक घंटे खर्च करते हैं (प्रकट में API कुंजी सहित) Crashlytics कोड जेनरेट करें
  • अक्षम त्वरित भागो -> पुनर्निर्माण -> स्थापित -> सफलता

मैं पर Android स्टूडियो 2.0.0-beta6 हूँ। यह भविष्य में हल हो जाएगा, लेकिन यह एकमात्र संसाधन था जो मुझे एक ही समस्या के साथ ऑनलाइन मिल सकता था, इसलिए उम्मीद है कि मैं उस समय किसी और को बचा सकता हूं।

+1

इंस्टेंटर अक्षम करना मेरे लिए मुद्दा तय नहीं किया। इच्छा है कि भविष्यवाणी की कोशिश करने में एक घंटे बिताने से पहले मुझे यह पोस्ट मिले। – Soumya

8

के साथ ठीक काम करता है:

# Fabric properties file: app/fabric.properties 
apiSecret=xx68f6074dxxxxxc11dxxx97c172e8ebf0 
apiKey=xxxe76c4xxxx97e8cxxxx0135e9d46f5a2xxx 

(ओपन सोर्स प्रोजेक्ट के लिए) प्रविष्टि AndroidManifest.xml पर .gitignore पर जोड़े

निकालें:

<meta-data 
    android:name="io.fabric.ApiKey" 
    android:value="xxx6c41xxx6ec601xxxd4xxxa2" /> 

Oficial प्रलेखन: https://docs.fabric.io/android/fabric/settings/working-in-teams.html#android-projects

+0

fabric.properties के साथ मेरे अंत में काम नहीं कर रहा है। अभी भी संदेश प्राप्त हो रहा है कि मैनिफेस्ट प्रविष्टि की कमी के कारण कपड़े को प्रारंभ नहीं किया जा सकता है – CyberpunkDreams

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