ÕªÒª£º±¾ÎÄΪ¡°Óµ±§Android Studio¡±ÏµÁеڶþƪ¡£ÔÚ¶ÁÕßÃÇÒѾ¿ªÊ¼ÊìϤºÍ°®ÉÏAndroid StudioÖ®ºó£¬×÷ÕßÁоÙÁËһЩ½ÏΪÉîÈëÓֱȽÏʵÓõŦÄÜ£¬²¢·ÖÏíÁË×Ô¼ºÒÔ¼°ÔÚ°ïÖúÓû§¼¯³É¹ý³ÌÖÐÓöµ½µÄ¿Ó£¬ÏàÐŶԳõѧÕß´óÓÐñÔÒæ¡£
¹ØÓÚѧϰ·½Ê½
Ôø¾¸úÅóÓÑÌÖÂÛ¹ýÎÒÃÇËù½ÓÊܹýµÄ´óѧ¹¤¿Æ½ÌÓý£¬¶¼ÊÇÒ»ÉÏÀ´ÏÈѧ»ù´¡ÀíÂÛ£¬×îºóÔÙÀ´Ò»¸ö½ð¹¤ÊµÏ°¡£Ò»¿ªÊ¼²»ÖªµÀΪʲô¶øÑ§£¬Ñ§²»½øÈ¥£¬»Ä·ÏÁË»ù´¡£¬µÈµ½½ð¹¤ÊµÏ°µÄʱºò£¬ÓÖ·¢ÏÖ»ù´¡²»ÀΣ¬ºó»Ú²»ÒÑ¡£ ¿¼Âǵ½´«Í³½ÌÓý·½Ê½µÄ²»×ãÖ®´¦£¬±ÊÕßÔÚ×éÖ¯±¾ÏµÁÐÎÄÕµÄʱºòÊÇÏȽ²ÈëÃÅʵÀý£¬½ø¶øÑ§Ï° Gradle ºÍ Groovy »ù´¡ÔÀí£¬×îºóѧϰ½ø½×ʵÀý¡£
ÉÏÆªÎÄÕ½éÉÜÁË´ÓADT Ç¨ÒÆµ½ Android Studio£¬ÏàО¹ýºÜ¶Ìʱ¼äµÄʹÓÃÖ®ºó£¬ÒѾ¿ªÊ¼ÊìϤºÍ°®ÉÏ Android Studio ÁË¡£»ù´¡µÄ¹¦ÄÜÎҾͲ»½²ÁË£¬ÏÂÃæÁоÙһЩ½ÏΪÉîÈëÓֱȽÏʵÓõŦÄÜ¡£
Android Studio Ïà¹Ø¹¦ÄܽéÉÜ
Îļþ¼Ð×éÖ¯ÊÓͼ
×î³£ÓõÄÓÐ Project ºÍ Android ÊÓͼ£¬Ç°Õß°´ÕÕÏîÄ¿ÎļþÊ÷½øÐÐ×éÖ¯£¬ºóÕßÊÇÒÔ Gradle ¹¹½¨Îļþ×÷ΪºËÐĽøÐÐ×éÖ¯£º

Gradle Ïà¹ØÎļþ½á¹¹
ÈÃÎÒÃÇÀ´¹Û²ìÒ»ÏÂAndroid Studio ÖÐ Gradle Ïà¹ØµÄ½á¹¹£º
. ©À©¤©¤ gradle ©¦ ©¸©¤©¤ wrapper //ËùʹÓÃµÄ Gradle °ü×°Æ÷ÅäÖà ©À©¤©¤ .gradle //ËùʹÓà Gradle °æ±¾ ©¦ ©¸©¤©¤ 2.8 ©À©¤©¤ AsInDepth.iml ©À©¤©¤ app //app module ©¦ ©À©¤©¤ app.iml ©¦ ©À©¤©¤ build ©¦ ©À©¤©¤ build.gradle //app module µÄ build.gradle ©¦ ©À©¤©¤ libs ©¦ ©À©¤©¤ proguard-rules.pro ©¦ ©¸©¤©¤ src ©À©¤©¤ build.gradle //ÏîÄ¿ build.gradle£¬Í¨³£ÅäÖÃÏîĿȫ¾ÖÅäÖã¬Èç repositories ºÍ dependencies ©À©¤©¤ gradle.properties //ÏîÄ¿ÊôÐÔÎļþ£¬Í¨³£¿ÉÒÔ·ÅÖÃһЩ³£Á¿ ©À©¤©¤ gradlew //Gradle °ü×°Æ÷¿ÉÖ´ÐÐÎļþ ©À©¤©¤ gradlew.bat //Gradle °ü×°Æ÷¿ÉÖ´ÐÐÎļþ(Windows) ©À©¤©¤ lib //lib module ©¦ ©À©¤©¤ build ©¦ ©À©¤©¤ build.gradle //lib module µÄ build.gradle ©¦ ©À©¤©¤ lib.iml ©¦ ©À©¤©¤ libs ©¦ ©À©¤©¤ proguard-rules.pro ©¦ ©¸©¤©¤ src ©À©¤©¤ local.properties //ÏîÄ¿µÄ±¾µØÊôÐÔ£¬Í¨³£ÊÇ sdk ËùÔÚλÖà ©¸©¤©¤ settings.gradle //ÏîÄ¿×ÜÌåÉèÖã¬Í¨³£ÊÇÅäÖÃÏîÄ¿ÖÐËùÓÐµÄ module |
Invalidate Cache
Android Studio »á³öÏÖË÷ÒýµÄÎÊÌ⣬ÄÇ¿ÉÒÔ´Óɾ³ý cache ÖØ½¨Ë÷Òý£¬File->Invalidate Caches/Restart
Multiple Language Editor
¶àÓïÑÔÎÄ×Ö¿ÉÒÔͨ¹ýÓÒ»÷Îļþ Open Translation Editor£¬¿ÉÒÔͬʱ½øÐб༣¬µ«ÊÇÎÒ·¢ÏÖÈç¹û°Ñ strings.xml ¸ÄÁ˱ðµÄÃû×Ö£¬Õâ¸ö¹¦ÄܾͲ» work ÁË¡£
Gradle Ïà¹Ø¹¦ÄܽéÉÜ
Gradle View
µã»÷ºìÉ«Èý½ÇÔËÐа´Å¥£¬ÆäʵÊÇÖ´ÐÐÁË Gradle µÄ һЩÁÐÈÎÎñ£¬Èç¹ûÄãÏë·Ö±ðÖ´ÐÐһЩÈÎÎñ£¬Ôò¿ÉÒÔ´Ó Gradle View ÀïÃæ²é¿´£º

ÃüÁîÐÐ
¹¤×÷ÇøÏ·½£¬ÓÐÒ»¸ö½Ð×ö Terminal µÄ tab£¬µã»÷Ö®ºó£¬»á×Ô¶¯ cd µ½µ±Ç° project ¸ùĿ¼Ï£¬¿ÉÒÔÊäÈëÈçÏÂÃüÁîÀ´³¢ÊÔÏ£º
Windows ÏÂÓ¦¸ÃÊÇ gradlew.bat build£¬ÏÂÃæ¾ùÒÔ Mac ΪÀý£¬²»ÔÙ׸Êö
¿ÉʹÓà help ²ÎÊýÀ´²é¿´ÓÐÄÄЩѡÏ
ÏÂÃæ½éÉÜÒ»Ð©ÖØÒªµÄÑ¡Ï
ÓÐЩʱºò£¬Ò»¸öÈÎÎñÔËÐÐʧ°Ü£¬Ö»¸ø³öÒ»¸ö´íÎó£¬Ã»Óиø¾ßÌåÔÒò£¬Äã¾ÍÐèÒª²é¿´¸ü¶àÐÅÏ¢£¬¿ÉÒÔʹÓòÎÊý --info »òÕß --stacktrace£º
- Ö¸¶¨ module »òÕß build.gradle
Gradle ĬÈÏÊǵ±Ç°Ä¿Â¼ÏÂѰÕÒ build.gradle ÎļþÖ´ÐÐÈÎÎñ£¬ÕâÑùÖ´ÐÐ build »áʹµÃÕû¸ö project ËùÓÐµÄ module µÄ build ÈÎÎñ¶¼»áÔËÐУ¬À˷Ѳ»±ØÒªµÄʱ¼ä£¬¿ÉÒÔÖ¸¶¨ module (-p) »òÕß build.gradle (-b)ÎļþÒÔËõС×÷Ó÷¶Î§£º
Sync
Õý³£Çé¿öÏ£¬ÐÞ¸ÄÁË build.gradle Îļþ£¬ÎļþÉÏ·½¾Í»áÓÐÒ»¸ö sync µÄ°´Å¥£¬µã»÷Ö®ºó»áÖØÐ¹¹½¨Õû¸ö build.gradle¡£µ«ÊÇÄ³Ð©ÌØÊâÇé¿ö£¬Õâ¸öͬ²½¿ÉÄÜ»áʧ°Ü¡£ÄǾÍÐèÒªÒ»¸ö¶îÍâµÄ´¥·¢¡£
·½·¨ÓÐËÄ£º
- ÔÙÐÞ¸ÄÒ»ÏÂÎļþ£¬±ã»áÔٴγöÏÖ sync °´Å¥
- µã»÷ÉÏ·½¹¤×÷ÇøµÄ°´Å¥

- µã»÷ Gradle View ÖеÄͬ²½°´Å¥

Build Variant
Ê×ÏÈÒªÁ˽âÁ½¸ö¸ÅÄ
Build Type
·ÖΪ debug ºÍ release£¬Õâ¸ö¸ÅÄîÈÝÒ×¶®¡£
Product Flavor
Õâ¸ö¸ÅÄîÖ÷ÒªÊÇΪÁËÂú×ãÈçÏÂÐèÇó£ºÍ¬Ò»·Ý´úÂëÒª´ò¶à¸ö°ü£¬ÀýÈçÊÕ·Ñ pay ºÍÃâ·Ñ free£¬Âß¼ÉÏÓÐÒ»Ð©Ð¡Çø±ð£¬ÓÖ²»Ïëͨ¹ýÂß¼ÅжÏÕâÖÖ³óªµÄ·½Ê½¡£»òÕßÄãҪʵÏÖËùν¶àÇþµÀ´ò°ü¡£
Build Variant = Build Type x Product Flavor
ÅäÖúÃÁËBuild Type ºÍ Product Flavor Ö®ºó£¬Gradle »áÉú³ÉÈô¸É¸ö°ü£¬·Ö±ðΪ£º
payDebug payRelease freeDebug freeRelease |
ÅäÖÃʵÀý

¼ÙÉèÕâÁ½¸ö°æ±¾µÄ App£¬ÓÐÒ»¸öÀà DiffBean ÐèÒª×ö´óÁ¿µÄÂß¼Åжϣ¬Ôò¿ÉÒÔͨ¹ýÔÚ build.gradle ÖÐÅäÖà product flavor£¬ÔÚ´úÂëÖÐÌí¼ÓÁ½¸öÓë main ƽÆëµÄÎļþ¼Ð£¬ °Ñ DiffBean ´Ó main Öгé³öÀ´£¬·Ö±ð·ÅÔÚÁ½¸öÎļþ¼ÐÖУ¬Ö»¹Ø×¢¶ÔÓ¦µÄÂß¼¼´¿É¡£
¹ØÓÚ Product Flavor Öж¼Äܶ¨ÒåÄÄЩÊôÐÔ£¬Çë²Î¿¼Android Gradle DSL¡£
Gradle ʹÓõIJֿâ
ҪʹÓÃÔ¶³ÌÒÀÀµ£¬¾ÍµÃÓиö¿âµÄ²Ö¿â£¬Gradle Ö§³Ö maven ²Ö¿â¡£ÕâЩ¿â¿ÉÒÔÊǹ«Óõģ¬ÀýÈç mavenCentral »òÕß jcenter£¬Ò²¿ÉÒÔʹÓÃ˽Óп⡣
±ÊÕßÔø¾ÉÏ´«¹ý¹«Óÿ⵽ mavenCentral ºÍ jcenter£¬Ç°Õߵķ±ËöÓëÄÑÒÔ¹ÜÀí£¬ÈÃÈËÉî¶ñÍ´¾ø¡£Android Studio ÔÚ0.8.0°æ±¾ÒԺ󣬽« jcenter ×÷ΪĬÈ쵀 maven ¿â¹«ÓÿâÀ´Ô´¡£
˽Óпâ¿ÉÒÔÍйÜÔÚÈκÎÒ»¸öÄÜ·ÃÎʵ½µÄµØ·½£¬¿ÉÒÔÍйÜÔÚ bintray ÉϵÄ˽Óпռ䣬Ҳ¿ÉÒÔÊÇÄÚÍø·þÎñÆ÷ÉÏ£¬ÉõÖÁ¿ÉÒÔÊDZ¾»ú´ÅÅÌÉÏ¡£
ÏÂÃæÊDZ¾ÈËʹÓõIJֿâµÄÒ»¸öÀý×Ó£º
allprojects { repositories { jcenter() mavenCentral() maven { url 'file:///Users/myusername/repo/' } } } |
¹ØÓڿ⣬»áÔÚ±¾ÏµÁеÄËÄÆª»áÓиüÏêϸµÄÐðÊö¡£
Óöµ½µÄ¿Ó
±ÊÕßËùÔÚµÄÏîÄ¿µÄ°üÒѾ·¢²¼µ½ÁË mavenCentral ºÍ jcenter£¬ºÜ¶àÓû§µÄÔÚ¼¯³ÉµÄʱºò£¬Óöµ½ÎÊÌ⣬ÆäÖÐ×î¾µäµÄÎÊÌ⣬±ãÊÇÏÂÃæµÄÈý¸ö¡£
ÏÂÔØÒÀÀµ¿âʧ°Ü£¬±¨ peer not found
Á¬½Ó jcenter ¿âĬÈÏʹÓà https ÐÒ飬³öÏÖÕâ¸ö´í£¬¶àÊýÇé¿ö϶¼ÊÇÒòΪÁ¬½Óʧ°ÜÁË£¬ÔÒòÂÄã¶®µÄ¡£ ¿ÉÒÔ³¢ÊÔ½« jcenter ¸Ä³ÉĬÈÏʹÓà http Á¬½Ó£º
jcenter { url "http://jcenter.bintray.com/" } |
ÏÂÔØ²»µ½Ìض¨µÄ°æ±¾
Maven ºÍ Gradle ¶¼»áÓÐÒ»¸ö»º´æ¿â£¬Ä¬Èϰ²×°µÄÇé¿öÏ£¬ÊÇÔÚÓû§¸ùĿ¼Ï嵀 .m2 »òÕß .gradle Îļþ¼ÐÖС£ ¿ÉÒÔ³¢ÊÔɾ³ýÀïÃæµÄÎļþ¡£ÀýÈ罫 Gradle µÄ cache Îļþɾ³ý£º
×¢Ò⣺Õâ¸ö²Ù×÷¿ÉÄܻᵼÖÂËùÓеÄÔ¶³Ì¿â¶¼ÐèÒªÖØÐÂÏÂÔØ£¬ÒªÈý˼ºóÐС£
¿âÖØ¸´³åÍ»
±ÊÕߵİüʹÓÃÁË com.android.support:support-v4:19.0.0 °ü£¬¿ÉÄÜÓû§µÄ App ҲʹÓÃÁËÕâ¸ö°ü£¬¾Í¿ÉÄÜÔÚ±àÒë½øÐдúÂëºÏ²¢µ½Ê±ºò³öÀàËÆµÄ´í£º
UNEXPECTED TOP-LEVEL EXCEPTION multiple dex files define Landroid/support/annotation/AniRes |
Õâ¸öʱºò£¬ÔÚ module µÄ build.gradle µÄ dependency Ìí¼ÓÒÀÀµÊ±£¬¼ÓÈë exclude ¹æÔò£º
compile ('com.bugtags.library:bugtags-lib:latest.integration') { exclude group: 'com.android.support', module: 'support-v4' } |
ºóÐøÒýÑÔ
½²µ½ÕâÀÓÐЩ¶ÁÕß¿ÉÄÜ»áÓöµ½¸úÎÒµ±Ê±¿ªÊ¼Ê¹Óà Gradle Ò»ÑùµÄÎÊÌ⣺Óöµ½ÎÊÌâ¾Í Stack Overflow£¬ÕÒµ½ workaround Á˵«²»ÖªµÀΪʲô£¬gradle °æ±¾¸üÐÂÁË£¬·¢ÏÖ²» work ÁË£¬ÉõΪã°âê¡£
¾¿ÆäÔÒò£¬¶¼ÊDz»Àí½â»ù´¡¡£ÏÂÃæ¶óÒª¹´ÀÕ¸ö´ó¸Å¡£
Ê×ÏÈ Gradle ÊÇÒ»¸ö¹¹½¨Æ½Ì¨£¬ËüʹÓõÄÊÇ Groovy ÓïÑÔ¡£
GroovyÊÇÒ»ÖÖ»ùÓÚ Java µÄÓïÑÔ£¬ÌṩÁ˸üºÃµÄ¶¯Ì¬ÌØÐÔ£¬¿ÉÒÔʹÓñհüʹµÃ±à³Ì¸üÁé»î£¬ºÜÊʺÏ×ö½Å±¾ÓïÑÔ¡£
ÉÏÃæÌáµ½µÄ settings.gradle ºÍ build.gradle ÔÚ Gradle ƽ̨ÖУ¬Æäʵ¶¼ÊÇÒ»¸ö Groovy ¶ÔÏó¡£
Gradle ͨ¹ý²å¼þ£¨plugin£©µÄ·½Ê½À´Ö§³Ö¹¹½¨¡£²å¼þÊǺܶàÈÎÎñ£¨task£©µÄ¼¯ºÏ£¬task ÖÐÓÖ°üº¬ÁËÐí¶à action¡£
¶øÀýÈç productFlavors ¶¼ÊÇÒ»¸öËùνµÄ DSL£¬²å¼þ¶¼¶¨ÒåÁ˺ܶàµÄ DSL£¬ÎÒÀí½âµÄËùνµÄ DSL ¾ÍÊÇÒ»¸öСÓïÑԹ淶ÓÃÀ´´¦ÀíÒ»¸öÌØ¶¨µÄÊÂÇ飨´ó¶àÇé¿öÏÂÊÇÅäÖã©¡£Android µÄ²å¼þµÄ DSL ÎĵµÔÚAndroid Gradle DSLÓÐ˵Ã÷¡£
Àí½âÁËÒÔÉÏ»ù´¡Ö®ºó£¬Äã¾Í»áÖªÆäÈ»£¬ÖªÆäËùÒÔÈ»ÁË¡£
ÒÔÉÏ֪ʶ£¬ÏÂһƪ½«»áÏêϸ½éÉÜ¡£¾´ÇëÁôÒâ¡£
|