2016-05-20 6 views
5

मैं नए एंड्रॉइड देव के लिए Google के Udacity कोर्स पर काम कर रहा हूं, और मैं ग्रैडल बिल्ड के साथ कुछ परेशानी में आया हूं और इसमें निरंतर परिभाषित कर रहा हूं। मैंने "," के कई बदलावों के साथ क्षेत्र के आस-पास की कोशिश की है, और यह है कि मैं ऑनलाइन अनुशंसित कहता हूं, लेकिन कुछ भी काम नहीं करता है। मैं सोच रहा था कि buildTypes.each के अंदर की रेखा को कैसे प्रारूपित किया जाए, यहां देखा गया?एंड्रॉइड ग्रैडल कॉन्फ़िगरेशन में एपीआई के लिए buildTypes.each स्ट्रिंग

buildTypes.each { 
    it.buildConfigField "String", "OPEN_WEATHER_MAP_API_KEY", **APICodeHere** 
} 

यहाँ एप्लिकेशन की Gradle निर्माण के लिए कोड की सम्पूर्णता है।

android { 
compileSdkVersion 21 
buildToolsVersion "21.1.2" 

defaultConfig { 
    applicationId "com.example.android.sunshine.app" 
    minSdkVersion 10 
    targetSdkVersion 21 
    versionCode 1 
    versionName "1.0" 
} 
buildTypes { 
    release { 
     minifyEnabled false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
    } 
} 
buildTypes.each { 
    it.buildConfigField "String", "OPEN_WEATHER_MAP_API_KEY", **APICodeHere** 
} 

} 

dependencies { 
compile fileTree(dir: 'libs', include: ['*.jar']) 
compile 'com.android.support:appcompat-v7:21.0.2' 
} 

धन्यवाद !!!

उत्तर

9

मैं भी इस पाठ्यक्रम स्वरूपण है कि अंततः के लिए काम किया ले रहा हूँ और मैं एक ही समस्या थी। मैं यह हूं:

it.buildConfigField 'String', 'OPEN_WEATHER_MAP_API_KEY', "\"6df0...9ac\"" 

ऊपर 6df0...9ac की बजाय अपने हेक्साडेसिमल ओपन वेदर एपीआई कुंजी पेस्ट करें। उम्मीद है की वो मदद करदे!

+0

कई अलग-अलग चीजों की कोशिश करने के बाद इस समाधान ने मेरे लिए इस मुद्दे को हल किया! काश वे इस कोर्स में उल्लेख करेंगे। – rOOb85

0

आप इसे परियोजना पैकेज के तहत खोले गए फ़ोल्डर के भीतर से कॉल करके इसे गिटूब के माध्यम से दृश्यमान बना सकते हैं।

app.gradle: 

def keystorePropertiesFile = rootProject.file("keystore.properties") 
     def keystoreProperties = new Properties() 
     keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) 

     buildTypes.each { 
      it.buildConfigField 'String', 'youtubeapi', 
        keystoreProperties['YoutubeApi'] 
     }` 
project.keystore.properties: 
YoutubeApi="keykeykeykeykapikey"; 
0

Gradle वर्शन, APPLICATION_ID, और दूसरों की तरह ही द्वारा बनाई चर स्टोर करने के लिए एक BuildConfig फ़ाइल बनाता है।

तो आपको अपने एप.ग्रैडल फ़ाइल के अंदर निर्देश buildTypes.each{} निर्देश देना होगा ताकि आप वहां कुछ नए चर बनाने के लिए तैयार कर सकें।

अपने app.gradle फ़ाइल में, अपने कोड इस तरह होना चाहिए:

... 
buildTypes{ 
    release { 
     bla bla bla 
    } 
    buildTypes.each { 
     it.buildConfigField("TYPE_OF_PARAM", "PARAM_NAME", "PARAM_VALUE") 
    } 
} 

जहां

  • TYPE_OF_PARAM प्रकार है कि आप अपने "चर" करने के लिए सेट करना चाहते हैं (स्ट्रिंग, के लिए है उदाहरण)।
  • PARAM_NAME आपके नए बनाए गए चर का नाम है।
  • PARAM_VALUE वह मान है जिसे आप अपने चर में सेट करना चाहते हैं।

महत्वपूर्ण

आप एक नया स्ट्रिंग वैरिएबल सेट कर रहे हैं, तो आप \" का उपयोग करना चाहिए अपने नए चर को उद्धरण चिह्नों स्थापित करने के लिए । इसलिए, यदि मैं स्ट्रिंग सेट कर रहा हूं, तो मुझे PARAM_VALUE को "\"My String\"" में संशोधित करना चाहिए। इस तरह, जब ग्रेडल आपके स्ट्रिंग चर सेट करता है, तो यह उद्धरण चिह्न भी सेट करेगा।

उम्मीद है कि किसी की मदद करता है।

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