त्रुटि: ANDROID_HOME सेट नहीं है और "Android" कमांड आपके PATH में नहीं है। आपको इनमें से कम से कम एक शर्त को पूरा करना होगा।


240

मैं PhoneGap स्थापित करने का प्रयास कर रहा हूं और मुझे निम्न त्रुटि मिल रही है:

त्रुटि: ANDROID_HOME सेट नहीं है और "Android" कमांड आपके PATH में नहीं है। आपको इनमें से कम से कम एक शर्त को पूरा करना होगा।

त्रुटि (स्क्रीनशॉट)

यहां छवि विवरण दर्ज करें

कॉर्डोवा के साथ उपयोग के लिए एंड्रॉइड को सही तरीके से सेट करने के लिए मुझे क्या करना है?


1
ANDROID_HOME का अब मूल्यह्रास हो गया है ANDROID_SDK_ROOT का उपयोग करें। अधिक जानकारी के लिए इस stackoverflow.com/a/55508862/6190043
सौरभ भंडारी

जवाबों:


369

विंडोज के लिए:

ANDROID_HOME = C: \ स्थापना स्थान \ android-sdk सेट करें

PATH =% PATH%;% ANDROID_HOME% \ टूल्स;% ANDROID_HOME% / प्लेटफ़ॉर्म-उपकरण सेट करें

इस अधिष्ठापन गाइड से लिया गया ।


33
सही है। लेकिन सिर्फ अगर यह आपके c: विंडो से cmd विंडो में अपने जैसे लोगों के लिए 100% स्पष्ट नहीं है: windows \ system32 \ projectname> निर्देशिका android_home के लिए ऊपर सेट कमांड टाइप करें। साइड नोट जब मैं एंड्रॉइड स्टूडियो के साथ काम कर रहा था तो डिफ़ॉल्ट रूप से मेरे एसडीके निम्नलिखित स्थान पर स्थापित किए गए थे: C: \ Users \ <username> \ AppData \ Local \ Android \ Android-sdk संक्षेप में सेट के ऊपर आपकी कॉर्डोवा डायरेक्टरी में =ROID_HOME = C: \ Users \ <username> \ AppData \ Local \ Android \ android-sdk - एंटर दबाएं फिर कॉर्डोबा प्लेटफ़ॉर्म एंड्रॉइड को फिर से चलाएं और पैकेज और प्रोजेक्ट बन जाएगा।
24

1
बस ANDROID_HOME इसे मेरे लिए सेट कर रहा है, इसके अतिरिक्त मुझे यह सुनिश्चित करना था कि मेरे पास एंड्रॉइड 19.0 स्थापित था क्योंकि मैंने एंड्रॉइड प्रोजेक्ट में प्लेटफ़ॉर्म जोड़ने की कोशिश की थी।
अभिजीत

22
ANDROID_HOME को स्थायी रूप से सेट करने के लिए मेरे कंप्यूटर पर क्लिक करें> गुण> उन्नत सिस्टम सेटिंग्स> पर्यावरण चर> 1. सिस्टम चर नाम जोड़ें = "ANDROID_HOME" मान = "E: \ Users \ user \ AppData \ Local's Android \ sdk" (अपना नाम दर्ज करें) android sdk path here)) 2. सिस्टम वेरिएबल के ऊपर आप अपने PATH को देख सकते हैं, PATH "%ATAT% संपादित करें;% ANDROID_HOME% \ टूल्स;% ANDROID_HOME% \ platform-tools" सहेजें "
Dibish

2
ANT_HOME
Ruwantha

1
@ मेरे लिए यह काम किया। GUI से जोड़ते समय, सिस्टम चर में पर्यावरण चर को जोड़ना सुनिश्चित करें और उपयोगकर्ता चर को नहीं।
पेटिब

82

मैक ओएस एक्स के लिए:

export ANDROID_HOME=/<installation location>/android-sdk-macosx
export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

मेरे लिए मेरा <स्थापना स्थान> ~ / adt-bundle-mac-x86_64 / sdk था, इसलिए पहला कमांड था export ANDROID_HOME=~/adt-bundle-mac-x86_64/sdk
संवारा

1
मेरे लिए: PATH = $ {PATH} निर्यात करें: $ ANDROID_HOME / उपकरण: $ ANDROID_HOME / उपकरण /
AGDM

क्या आपको 'पथ' के चारों ओर ब्रेसिज़ की आवश्यकता है जैसा कि ऊपर दिखाया गया है? मैं अपने हाइब्रिड वातावरण को स्थापित करते हुए एक समय का नमस्ते कर रहा हूं। लेकिन मैं मैक के लिए नया हूँ? मेरे पास विंडोज़ में कोई समस्या नहीं थी: | लेकिन मैं अभी भी अपने नए मैक से प्यार करता हूँ!
रेकॉर्डबॉय

45

मेरे पास MAC OS X Yosemite, Android Studio 1.0.1, JDK 1.8 और Cordova 4.1.2 है

जब मैंने android प्रोजेक्ट जोड़ने की कोशिश की:

cordova platforms add android

मुझे संदेश प्राप्त हुआ: ANDROID_HOME सेट नहीं है और "Android" कमांड आपके PATH में नहीं है

Cforcloud के उत्तर के आधार पर ... 'त्रुटि: कॉर्डोवा और http://developer.android.com/sdk/installing/index.html?pkg=studio का उपयोग करके कमांड "android" विफल हो गया। मैंने निम्न का उपयोग किया:

export ANDROID_HOME="/Users/<user_name>/Library/Android/sdk"
export ANDROID_TOOLS="/Users/<user_name>/Library/Android/sdk/tools/"
export ANDROID_PLATFORM_TOOLS="/Users/<user_name>/Library/Android/sdk/platform-tools/"
PATH=$PATH:$ANDROID_HOME:$ANDROID_TOOLS:$ANDROID_PLATFORM_TOOLS
echo $PATH

जब मैंने android प्रोजेक्ट बनाने की कोशिश की, तो मुझे यह संदेश मिला:

Creating android project...
/Users/lg/.cordova/lib/npm_cache/cordova-android/3.6.4/package/bin/node_modules/q/q.js:126
                    throw e;
                          ^
Error: Please install Android target "android-19".

मैंने एंड्रॉइड एसडीके प्रबंधक चलाया, और एंड्रॉइड 4.4.2 (एपीआई 19) (सब कुछ लेकिन ग्लास डेवलपमेंट किट पूर्वावलोकन) स्थापित किया। इसने मेरे लिए काम किया।

===

यह मेरी .bash_profile फ़ाइल की सामग्री है।

export PATH=$PATH:/usr/local/bin
export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
launchctl setenv STUDIO_JDK /library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk
export ANDROID_HOME="/Users/<UserName>/Library/Android/sdk"
export ANDROID_TOOLS="/Users/<UserName>/Library/Android/sdk/tools"
export ANDROID_PLATFORM_TOOLS="/Users/<UserName>/Library/Android/sdk/platform-tools"
PATH=$PATH:$ANDROID_HOME:$ANDROID_TOOLS:$ANDROID_PLATFORM_TOOLS

टर्मिनल का उपयोग करते हुए .bash_profile को संपादित करने के लिए, मैं नैनो का उपयोग करता हूं। यह समझना आसान है।

cd
nano .bash_profile

मुझे उम्मीद है यह मदद करेगा।


धन्यवाद यह भी मेरे लिए काम किया! लेकिन हर बार जब मैं एक नया टर्मिनल खोलता हूं तो मुझे PATH सेट करना चाहिए, क्या कोई तरीका है जो PATH को स्थायी कर सकता है?
NBoymanns

PATH को .bash_profile फ़ाइल में शामिल करें। मैंने पिछली टिप्पणी में निर्देश जोड़े थे।
lgm

यह मेरे लिए बहुत स्पष्ट था और अन्य सभी उत्तरों की तुलना में बहुत बेहतर था! मुझे नहीं पता था कि मुझे अपने सिस्टम पर एसडीके कहाँ मिलेगा।
22

@lgm, यह जरूरी हो गया था शामिल करने के लिए ANDROID_TOOLSऔर ADROID_PLATFORM_TOOLS?
देव येगो

36

विंडोज के लिए:

मेरे कंप्यूटर पर राइट क्लिक करें -> गुण -> उन्नत सिस्टम सेटिंग -> पर्यावरण चर सिस्टम चर पर पथ संपादित करें। \ yourSdkHome \ tools; \ yourSdkHome \ platform-tools।

फिर अपने cmd प्रॉम्प्ट को बंद करें और फिर से खोलें।

बस।


1
हम कॉर्डोवा के लिए प्रलेखन को कैसे अपडेट कर सकते हैं? (इंस्टाल और स्टैकओवरफ्लो के बीच कूदने के बजाय)
रैन डेविडविट्ज़

ध्यान दें कि कभी-कभी आपके $ PATH वैरिएबल में बहुत गड़बड़ हो जाती है, और यह 256 प्रतीकों से अधिक लंबा नहीं हो सकता है, इसलिए यू को हेल्पर
वैर का

क्षमा करें, मुझे समझ में नहीं आया। मैं हेल्पर वर्सेस का उपयोग कैसे कर सकता हूं?
हैश

मेरे लिए काम नहीं कर रहा है ?? मेरा SDK स्थान ई ड्राइव में है .. चाहे वह C ड्राइव में होना चाहिए ??
कार्तिकेय

बिल्कुल सही, मुझे काम करने के लिए अपने कंप्यूटर को पुनरारंभ करने की आवश्यकता थी, लेकिन यह किया।
म्हारनेइरो

33

लिनक्स पर, इसे अपने .bashrc, .profile या अपने शेल के लिए उपयुक्त फ़ाइल के अंत में जोड़ें:

export ANDROID_HOME=/home/youruser/whatever/adt-bundle-linux-x86_64-20140702/sdk
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platforms-tools

कृपया ध्यान दें कि ये पर्यावरण चर नए बनाए गए गोले के लिए उपलब्ध होंगे, पहले से खुले नहीं।


यह मेरे लिए काम किया। आपका कथन "कृपया ध्यान दें कि ये पर्यावरण चर नए बनाए गए गोले के लिए उपलब्ध होंगे, पहले से खुले नहीं।" क्या मुझे यह महसूस करने में मदद मिली कि मुझे इसे फिर से करना है।
jessiPP

जब आप रिबूट करते हैं तो क्या ये सेटिंग नहीं खोएंगे? मेरा मतलब है कि उन्हें वास्तव में .bashrc फ़ाइल को छूने के बिना इस तरह से निर्यात करना।
देव येगो

जैसा कि ऊपर कहा गया है: इसे अपने .bashrc, .profile या उपयुक्त फ़ाइल के अंत में जोड़ें
Quic

24

विंडोज पर एंड्रॉइड स्टूडियो का उपयोग करके सिस्टम चर सेटिंग्स थोड़ी बदल गई हैं।

आपको अभी भी एक सिस्टम वैरिएबल जोड़ना होगा ANDROID_HOME, लेकिन आमतौर पर एंड्रॉइड एसडीके युक्त डायरेक्टरी की ओर इशारा करते हुए C:\Users\YOUR_USERNAME\AppData\Local\Android\android-studio\sdk

आपको Pathसिस्टम वेरिएबल में निम्न जोड़ने की भी आवश्यकता है :

;%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools;

इससे लिया गया: https://github.com/simnova/webdevdocs/wiki/Installing-PhoneGap-and-Android-Studio-on-Windows

एसडीके पथ भी अंदर हो C:\Users\USER\AppData\Local\Android\sdk


प्रभाव को लेने के लिए आपको कुछ समय के लिए इसे बंद करने और फिर से खोलने की आवश्यकता हो सकती है ... किसी कारण से यह चर को बदलने के बाद कुछ समय बाद काम करना शुरू कर देता है और एएस को फिर से शुरू करता है, फिर इस समाधान पर वापस आना चाहिए और यह काम करना चाहिए..इसलिए नहीं। इस पर छोड़ दें, यहां तक ​​कि एंड्रॉइड स्टूडियो v2 के लिए
Whyoz

9

यह वही है जो मैंने इसे काम करने की कोशिश की। मै अंदर था:

ओएस एक्स योसेमाइट संस्करण 10.10.2
कॉर्डोवा संस्करण 4.2.0
एंड्रॉइड स्टूडियो 1.0.1
जावा एसई विकास किट 7

निर्धारित पथ:

# on ~/.zshrc file (open a text editor)
export ANDROID_HOME="/Users/<user>/Library/Android/sdk/"
export ANDROID_TOOLS="/Users/<user>/Library/Android/sdk/tools"
export ANDROID_PLATFORM_TOOLS="/Users/<user>/Library/Android/sdk/platform-tools"
PATH=$PATH:$ANDROID_HOME:$ANDROID_TOOLS:$ANDROID_PLATFORM_TOOLS

फिर से खोलना टर्मिनल

एंड्रॉइड एसडीके प्रबंधक से "एंड्रॉइड -19" इंस्टॉल करें

$ android
# pick "SDK Platform Android 4.4.2, API 19"

और फिर एक कॉर्डोवा-आधारित परियोजना निर्देशिका पर जाएं

$ ionic platform add android

मैंने अभी इस फ़ाइल में चर डाले हैं:sudo nano ~/.bash_profile
Caio Kawasaki

6
Android path set in linux:

$export ANDROID_HOME=/usr/lib/android-sdk-linux
$export PATH=$PATH:$ANDROID_HOME/tools
$export PATH=$PATH:$ANDROID_HOME/platforms-tools

than

$cordova run android

मैं उसी मुद्दे का सामना कर रहा था। मेरे मामले में समस्या यह थी कि मैं रूट उपयोक्ता के रूप में कमांड से ऊपर नहीं चल रहा था। मैंने जड़ के रूप में निष्पादित किया और सब कुछ ठीक काम किया।
भूपिंदर

5

ANDROID_HOMEउपयोग के ANDROID_HOMEउपयोग के बजाय अब हटा दिया गया हैANDROID_SDK_ROOT

Google Android दस्तावेज़ के अनुसार -

ANDROID_SDK_ROOTSDK स्थापना निर्देशिका के लिए पथ सेट करता है । एक बार सेट करने के बाद, मान आमतौर पर नहीं बदलता है, और एक ही मशीन पर कई उपयोगकर्ताओं द्वारा साझा किया जा सकता है। ANDROID_HOME , जो SDK संस्थापन निर्देशिका की ओर इशारा करता है, पदावनत है

यदि आप इसका उपयोग जारी रखते हैं, तो निम्नलिखित नियम लागू होते हैं:

  • यदि ANDROID_HOMEपरिभाषित किया गया है और एक वैध एसडीके इंस्टॉलेशन शामिल है, तो इसके मूल्य का उपयोग मूल्य के बजाय किया जाता है ANDROID_SDK_ROOT
  • यदि ANDROID_HOMEपरिभाषित नहीं किया गया है, तो मूल्य ANDROID_SDK_ROOTका उपयोग किया जाता है।
  • अगर ANDROID_HOMEपरिभाषित किया गया है, लेकिन मौजूद नहीं है या इसमें वैध एसडीके इंस्टॉलेशन नहीं है, तो ANDROID_SDK_ROOTइसके बजाय मूल्य का उपयोग किया जाता है।

विवरण के लिए इस Android प्रलेखन लिंक का पालन करें


4

लिनक्स में,

.bashrcफ़ाइल संपादित करें ANDROID_HOMEऔर PATHचर जोड़ें ,

export ANDROID_HOME=/usr/local/android-sdk-linux/
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platforms-tools

.bashrcफ़ाइल सहेजने के बाद , चलाएँ

source ~/.bashrc

फिर टाइप में

android एक टर्मिनल में

अगर यह चलेगा, ANDROID_HOMEऔर PATHसेट है,

यदि आपको यह संदेश मिलता है,

bash: /src/android-sdk/tools/android: Permission denied

फिर भागो

sudo chmod a+x /usr/local/android-sdk-linux/tools/android

अन्यथा आपको एक ही त्रुटि संदेश मिलेगा

Error: Android SDK not found. Make sure that it is installed. If it is not at the default location, set the ANDROID_HOME environment variable.

NB: / usr / स्थानीय / android-sdk-linux / के बजाय अपने Android sdk स्थापना पथ का उपयोग करें


4

विंडोज के लिए मुझे सिर्फ एसडीके फोल्डर की ओर इशारा करते हुए एक एनवायर वैरिएबल जोड़ना था। किया हुआ! (मेरे लिए स्वीकृत जवाब काम नहीं किया)

यहां छवि विवरण दर्ज करें


3

मुझे अपनी विंडोज़ कंसोल को बंद करना और फिर से खोलना था (या एक नया कंसोल खोलना), और फिर एसडीके प्रबंधक (भागा हुआ android) खोलें , जिसके बाद अपडेट और इंस्टॉल का एक गुच्छा पूरा करना था।


3

उन लोगों के लिए जो विंडोज़ पर आयोनिक फ्रेमवर्क के साथ काम कर रहे हैं और उनके पीसी पर andorid स्टूडियो स्थापित नहीं है, आपको या तो Android Studio डाउनलोड करना होगा या सूची में SDK प्रबंधक डाउनलोड करना होगा

यदि आप एसडीके प्रबंधक विकल्प चुनते हैं तो आपको एनवायरमेंट वेरिएबल के लिए रास्ता तय करना होगा:

  1. चर नाम: ANDROID_HOME , चर मूल्य: पथ जहाँ आपने Android SDK स्थापित किया है, मेरे मामले में, C: \ Android \ android-sdk है

  2. आपको इसे जोड़कर पथ चर प्रणाली में चर जोड़ना होगा: % ANDROID_HOME% \ platform-tools;% ANDROID_HOME% \ Tools;

  3. फिर अगर आपको "JDK त्रुटि" मिली है, तो बस उसे Oracle वेबसाइट से डाउनलोड करें और Android SDK: Variable name: JAVA_HOME , वैरिएबल मान: जैसे पथ जहाँ आपने JDK स्थापित किया है, मेरे मामले में C: \ प्रोग्राम फ़ाइलें \ जावा \ jdk1.8.0_144 । फिर इसे पथ चर प्रणाली में जोड़कर जोड़ें ;% JAVA_HOME% \ bin

  4. फिर अगर आपको "ग्रैडल एरर" मिला है, तो केवल ग्रेड की आधिकारिक वेबसाइट पर इंस्टॉलेशन चरणों को समाप्त करें।

  5. अंत में आप अपने ईओण ऐप का एपीके बनाना जारी रख सकते हैं।

नोट: आपको कई बार cmd विंडो को फिर से खोलना होगा या उन बदलावों को करने के बाद अपने पीसी को रीस्टार्ट करना होगा। आशा है कि यह काम आपके लिए होगा।


3

समस्या को ठीक करने के लिए केवल एक परिवर्तन की आवश्यकता थी:

के लिए जाओ Start -> Control Panel -> System -> Advanced(tab) -> Environment Variables -> System Variables

सेट ANDROID_HOMEकरने के लिएC:\Program Files (x86)\Android\android-sdk


2

मैक पर एंड्रॉइड स्टूडियो का उपयोग करते हुए, इसे अपने टर्मिनल पर चलाएं:

export ANDROID_HOME=/Applications/Android\ Studio.app/sdk/
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platforms-tools

फिर, जब आप टाइप करें

android

आपके टर्मिनल पर, यह कुछ चलेगा


जब मैंने android टाइप किया तो मुझे कुछ नहीं मिला। मैं नहीं ढूँढ सकता और sdk निर्देशिका के तहत Android Studio.app
हगी

मेरे मामले में एंड्रॉइड स्टूडियो सेटिंग (फ़ाइल-> प्रोजेक्ट संरचना-> एसडीके) एडीटी बंडल (/ एप्लिकेशन / विज्ञापन-बंडल-मैक-x86_64-20130729 /) पर
वापस इंगित करता है

1

यह ज्यादातर लापता andriod SDK के साथ है। इस समस्या के लिए और " JAVA_HOME " त्रुटि निम्नलिखित समाधान ने मेरे लिए काम किया ... निम्नलिखित चरणों के बाद होल डे बचाया।

एप्लिकेशन बनाने और चलाने के लिए, आपको उस प्रत्येक प्लेटफ़ॉर्म के लिए एसडीके स्थापित करना होगा जिसे आप लक्षित करना चाहते हैं। वैकल्पिक रूप से, यदि आप विकास के लिए ब्राउज़र का उपयोग कर रहे हैं, तो आप ब्राउज़र प्लेटफ़ॉर्म का उपयोग कर सकते हैं, जिसे किसी भी प्लेटफ़ॉर्म SDK की आवश्यकता नहीं है।

यह जाँचने के लिए कि क्या आप प्लेटफॉर्म बनाने के लिए आवश्यकताओं को पूरा करते हैं:

$ cordova requirements
Requirements check results for android:
Java JDK: installed .
Android SDK: installed
Android target: installed android-19,android-21,android-22,android-23,Google Inc.:Google APIs:19,Google Inc.:Google APIs (x86 System Image):19,Google Inc.:Google APIs:23
Gradle: installed

Requirements check results for ios:
Apple OS X: not installed
Cordova tooling for iOS requires Apple OS X
Error: Some of requirements check failed

1

वैसे, एक अन्य संभावना यह है कि आपके पास कॉर्डोवा एंड्रॉइड प्लेटफॉर्म का बहुत पुराना संस्करण है।

त्रुटि: Android SDK नहीं मिला। सुनिश्चित करें कि यह स्थापित है। यदि यह डिफ़ॉल्ट स्थान पर नहीं है, तो ANDROID_HOME पर्यावरण चर सेट करें।

फिर:

cordova platform update android --save

1

1: सिस्टम गुण
2 पर जाएं: परिवर्तन सेटिंग
3 पर क्लिक करें: अग्रिम टैब पर क्लिक करें
4: पर्यावरण चर पर क्लिक करें ... बटन
5: सिस्टम चर क्षेत्र में नए बटन पर क्लिक करें
6: सेट करें ANDROID_HOME चर नाम फ़ील्ड
7 में सेट C: प्रोग्राम फ़ाइलें (x86) \ Android \ android-sdk चर मान फ़ील्ड में
9: क्लिक करें ठीक बटन
10: डबल क्लिक करें सूची
11 में पथ चर : नया बटन
12 क्लिक करें : पिछला C: \ Program Files (x86) \ Android \ Android- दायर
13 में sdk \ platform-tools : नए बटन पर फिर से क्लिक करें
14: past C: \ Program Files (x86) \ Android \ android-sdk \ Tools
15 क्षेत्र में : 3 बार एंटर दबाएं।
आपका जाना अच्छा है


1

तुम बस में एक कमांड टाइप करने की आवश्यकता flutter_console.batप्रकारflutter config --android-sdk <path-to-your-android-sdk-path>


0

अगर लिनक्स उपयोगकर्ताओं के पास अभी भी वही त्रुटि है, तो शायद उन्होंने एंड्रॉइड प्लेटफॉर्म को जोड़ने के लिए "sudo" का उपयोग किया है .. यहाँ इसके लिए एक त्वरित समाधान , या आपने sudo का उपयोग करके कॉर्डोवा स्थापित किया है, यहाँ भी इस समस्या का समाधान है

उममीद है कि इससे मदद मिलेगी!


0

मैंने भी इसी मुद्दे का सामना किया, मुझे इसके साथ एक समाधान मिला।

मैंने निम्नलिखित कदम उठाए :

  1. ओपन सिस्टम गुण
  2. पर्यावरण चर
  3. एक नया सिस्टम वैरिएबल बनाएं
  4. नाम: ANDROID_HOME
  5. मान: अपने SDK पथ की प्रतिलिपि बनाएँ (उदा: my SDK पथ E: \ SoftWares \ Android-SDK )

अपने वर्तमान cmd को बंद करें, और इसे फ़्लटर चिकित्सक चलाएं

यह खिड़कियों पर काम करना चाहिए


-1

यदि कुछ और काम नहीं करता है, तो सुनिश्चित करें कि आपके पास भवन के दौरान सही अनुमति और स्वामित्व सेट है। एक त्वरित सुधार हो सकता है:

sudo chown -R <you>:<your_group> *
sudo chmod -R 755 *

यह पोस्ट विंडोज़ के लिए है।
जोश मैककारिन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.