पर क्रैशलीटिक्स.प्रोपर्टीज़ में एपीआई कुंजी नहीं ढूंढ रहा है। मैं वर्तमान में एपीआई कुंजी स्विचिंग स्क्रिप्ट को 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 की ओर इंगित करने के लिए बनाना चाहिए?
इंस्टेंटर अक्षम करना मेरे लिए मुद्दा तय नहीं किया। इच्छा है कि भविष्यवाणी की कोशिश करने में एक घंटे बिताने से पहले मुझे यह पोस्ट मिले। – Soumya