สร้างแอพ Android Studio ผ่านบรรทัดคำสั่ง


142

ฉันต้องการสร้างแอป Android Studio (ระบบสร้าง Gradle) แต่ฉันต้องการทำผ่านบรรทัดคำสั่ง


6
ตัวอย่างเช่น. /gradlew AssembleRelease, ./gradlew AssembleDebug
Gabriele Mariotti

หากคุณมีตัวแปรบิวด์หลายตัวคุณควรไป. /gradlew AssembleYourVariantRelease
Michał Dobi Dobrzański

คำตอบ:


195

Android Studio จะสร้างGradle wrapperโดยอัตโนมัติในรูทของโปรเจ็กต์ของคุณซึ่งเป็นวิธีที่เรียกใช้ Gradle Wrapper เป็นสคริปต์ที่เรียกผ่านไปยังไบนารี Gradle จริงและช่วยให้คุณอัปเดต Gradle อยู่เสมอซึ่งทำให้การใช้การควบคุมเวอร์ชันง่ายขึ้น ในการรันคำสั่ง Gradle คุณสามารถใช้gradlewสคริปต์ที่พบในรูทของโปรเจ็กต์ของคุณ (หรือgradlew.batบน Windows) ตามด้วยชื่อของงานที่คุณต้องการเรียกใช้ ตัวอย่างเช่นในการสร้างเวอร์ชันดีบักของแอปพลิเคชัน Android ของคุณคุณสามารถเรียกใช้./gradlew assembleDebugจากรูทของที่เก็บของคุณ ในการตั้งค่าโปรเจ็กต์เริ่มต้น APK ที่ได้จะพบในapp/build/outputs/apk/app-debug.apkไฟล์. ในเครื่อง * nix คุณสามารถเรียกใช้find . -name '*.apk'เพื่อค้นหาได้หากไม่มี


38
ฉันใช้เวลามากกว่า 2 ชั่วโมงในการทำความเข้าใจว่าวิธีที่เหมาะสมในการเรียกใช้ Gradle จากบรรทัดคำสั่งคืออะไร
Oded Regev

4
ฉันวิ่งนี้จากบรรทัดคำสั่งc:\path_to_my_app\gradlew.bat ./gradlew assemblyDebugและมันแสดงให้ฉันเห็นดาวน์โหลด services.gradle.org/distributions/gradle-2.10-all.zip และมันติดอยู่ที่นั่น ฉันคิดถึงอะไร?
Saeed Neamati

คุณยังสามารถติดตั้งแอปด้วย./gradlew installArm7Debugไฟล์. งานอื่น ๆ หาได้ง่ายจาก./gradlew tasks
Andreas Løve Selvik

1
ฉันรวบรวมโครงการและอัปโหลดไปยังอุปกรณ์ Android โดยใช้./gradlew assembleDebugและ./gradlew installDebugคำสั่ง ใน AndroidStudio มีคอนโซลที่ตรวจสอบกิจกรรมของอุปกรณ์ Android ทั้งหมดแบบเรียลไทม์ (เช่นหากอุปกรณ์ Android ขัดข้องคอนโซลจะพิมพ์ร่องรอยข้อยกเว้น) จะรับสิ่งอำนวยความสะดวกการตรวจสอบนี้บนเครื่องปลายทางได้อย่างไร?
mercury0114

วิธีป้องกันไม่ให้ gradle ดาวน์โหลด -> การดาวน์โหลด services.gradle.org/distributions/gradle-2.xyz-all.zip ฉันสังเกตเห็นว่า gradle สร้างโครงการ android ได้ดี แต่ในบรรทัดคำสั่งมีปัญหาในการตั้งค่าพร็อกซี สามารถแก้ไขได้โดยใส่การตั้งค่าพร็อกซี (แต่ตอนนี้ฉันไม่มีสิทธิ์นั้น) แต่ฉันแค่ต้องการข้ามสิ่งที่ดาวน์โหลด .. ฉันจะทำอย่างไร?
Raulp

27

ลองสิ่งนี้ (OS X เท่านั้น):

brew install homebrew/versions/gradle110
gradle build

คุณสามารถใช้gradle tasksเพื่อดูงานทั้งหมดที่มีอยู่สำหรับโครงการปัจจุบัน ไม่Android Studioจำเป็นที่นี่


4
ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง homebrew แล้วเพื่อเริ่มต้น!
amitavk

1
"ไม่จำเป็นต้องใช้ Android Studio" - เว้นแต่คุณจะต้องการ Android SDK ฉันเดา ไม่ว่าในกรณีใดก็ตามโครงการที่ฉันพยายามสร้างจะขอมัน
hmijail ไว้อาลัยลาออก

24

การสร้างแอปพลิเคชันของคุณมีสองประเภทโดยใช้การตั้งค่าการสร้าง Gradle: ประเภทหนึ่งสำหรับการดีบักแอปพลิเคชันของคุณ - ดีบัก - และอีกประเภทหนึ่งสำหรับการสร้างแพ็คเกจสุดท้ายของคุณสำหรับโหมดรีลีส - รีลีส

การสร้างในโหมดดีบัก

  • ขั้นแรกไปที่โฟลเดอร์รูทของโครงการสตูดิโอ Android โดยใช้ CMD ป้อนคำอธิบายภาพที่นี่

  • รันคำสั่งนี้ gradlew.bat AssembleDebug

  • หน้าต่างแสดงผลมีลักษณะดังนี้ ป้อนคำอธิบายภาพที่นี่

สร้าง apk ที่ลงนามในโหมดเผยแพร่

  • แก้ไขไฟล์ build.gradle เพื่อสร้างโปรเจ็กต์ของคุณในโหมดรีลีส:

    android {
    ...
    defaultConfig { ... }
    signingConfigs {
        release {
            storeFile file("myreleasekey.keystore")
            storePassword "password"
            keyAlias "MyReleaseKey"
            keyPassword "password"
        }
    }
    buildTypes {
        release {
            ...
            signingConfig signingConfigs.release
        }
    }}
    

ป้อนคำอธิบายภาพที่นี่

  • รันคำสั่งนี้gradlew.bat AssembleRelease

เสร็จแล้วขอให้โชคดี!


2
มีวิธีเปิดแอปอัตโนมัติหลังจากสร้างสำเร็จหรือไม่?
Ambar Jain

ฉันไม่พบวิธีใดในการเปิดแอปอัตโนมัติหลังจากสร้าง
Dhaval Jivani

3
@DhavalJivani เปิดตัวในโปรแกรมจำลองที่คุณหมายถึง? ถ้าเป็นเช่นนั้นนั่นเป็นเพียงคำสั่ง adb ง่ายๆ คุณยังสามารถกำหนดเป้าหมายกิจกรรมที่ต้องการเปิดตัว developer.android.com/studio/command-line/adb.html
Blizz

@DhavalJivani วิธีที่ดีที่สุดในการทดสอบแอพ Android ในการทดสอบอัตโนมัติคืออะไร? สำหรับเว็บเรามีซีลีเนียมใน python และ node
Harsh Manvar

9

1. ติดตั้ง Gradle และ Android SDK

ทั้ง

  • ติดตั้งสิ่งเหล่านี้ตามที่เห็นสมควร
  • เรียกใช้./gradlewหรือgradlew.batถ้าบน Windows
    • chmod +x ./gradlew อาจจำเป็น

จากจุดนี้เป็นต้นไปgradleหมายถึงการวิ่ง Gradle ไม่ว่าคุณจะเลือกวิธีใด ทดแทนตามนั้น

2. ตั้งค่า Android SDK

  • หากคุณติดตั้ง SDK ด้วยตนเอง

    • export ANDROID_HOME=<install location>
    • คุณอาจต้องการใส่สิ่งนั้นไว้ในของคุณ~/.profileหากไม่ได้ทำโดยอัตโนมัติ
  • ยอมรับใบอนุญาต: yes | sdkmanager --licenses

    • sdkmanager สามารถพบได้ใน $ANDROID_HOME/tools/bin
    • sdkmanager อาจต้องรันในฐานะรูท
  • ลองวิ่ง gradle

    • หากมีข้อร้องเรียนเกี่ยวกับใบอนุญาตหรือ SDK ไม่พบให้แก้ไขการอนุญาตไดเรกทอรี
      • chown -R user:group $ANDROID_HOME
      • หากคุณประมาทและ / หรือผู้ใช้เพียงคนเดียว: chmod 777 -R $ANDROID_HOME

3. อาคาร

  • gradle tasks แสดงรายการงานทั้งหมดที่สามารถรันได้
  • :app:[appname] คือคำนำหน้าของงานทั้งหมดซึ่งคุณจะเห็นในบันทึก Gradle เมื่อคุณสร้าง
    • สิ่งนี้สามารถยกเว้นได้เมื่อเรียกใช้งาน

งานที่จำเป็นบางอย่าง

  • gradle assemble: สร้างแอปรูปแบบต่างๆของคุณ
    • ส่งผลให้. apk อยู่ใน app/[appname]/build/outputs/apk/[debug/release]
  • gradle assembleDebugหรือassembleRelease: สร้างเฉพาะเวอร์ชันดีบักหรือรุ่นที่เผยแพร่
  • gradle installDebugหรือinstallReleaseสร้างและติดตั้งลงในอุปกรณ์ที่เชื่อมต่อ
    • ได้adbติดตั้ง
    • แนบอุปกรณ์ที่เปิดใช้งานการดีบัก USB และการถ่ายโอนไฟล์ USB
    • เรียกใช้adb devicesตรวจสอบว่าอุปกรณ์ของคุณอยู่ในรายการและอุปกรณ์อยู่ข้างๆ

สร้างและติดตั้งโดยอัตโนมัติเมื่อมีการเปลี่ยนแปลง

วิธีนี้หลีกเลี่ยงการรันคำสั่งเดิม ๆ อย่างต่อเนื่อง

gradle -t --continue installDebug
  • -t: aka --continuousเรียกใช้งานใหม่โดยอัตโนมัติหลังจากเปลี่ยนไฟล์
  • --continue: ดำเนินการต่อหลังจากเกิดข้อผิดพลาด ป้องกันการหยุดเมื่อเกิดข้อผิดพลาด

เรียกใช้gradle -hสำหรับความช่วยเหลือเพิ่มเติม


8

คุณน่าจะมาที่นี่เพราะคุณต้องการติดตั้งด้วย!

สร้าง

gradlew

(บน Windows gradlew.bat)

จากนั้นติดตั้ง

adb install -r exampleApp.apk

( -rทำให้แทนที่สำเนาที่มีอยู่เพิ่ม-sหากติดตั้งบนโปรแกรมจำลอง)

โบนัส

ฉันตั้งนามแฝงในของฉัน~/.bash_profileเพื่อให้เป็นคำสั่ง 2char

alias bi="gradlew && adb install -r exampleApp.apk"

(ย่อมาจาก Build and Install)


7

Cheatsheet สำหรับเรียกใช้ Gradle จากบรรทัดคำสั่งสำหรับโครงการ Android Studio บน Linux:

cd <project-root>
./gradlew
./gradlew tasks
./gradlew --help

ควรเริ่มต้น ..



1

สำหรับผู้ใช้ MAC เท่านั้น

ขยายคำตอบของVji

ขั้นตอนทีละขั้นตอน:

  1. เปิด Terminal
  2. เปลี่ยนไดเรกทอรีของคุณเป็นโครงการของคุณ (cd PathOfYourProject)
  3. คัดลอกและวางคำสั่งนี้แล้วกด Enter:

    chmod +x gradlew
    
  4. ตามที่Vjiแนะนำ:

    ./gradlew task-name
    

    อย่าลืมเพิ่ม (DOT) ก่อน / gradlew


1

เอกสารอย่างเป็นทางการอยู่ที่นี่:

ในการสร้าง APK การดีบักให้เปิดบรรทัดคำสั่งและไปที่รากของไดเรกทอรีโครงการ ในการเริ่มการสร้างการดีบักให้เรียกใช้assembleDebugงาน:

gradlew assembleDebug

นี้จะสร้างเอพีเคที่มีชื่อในmodule_name-debug.apkproject_name/module_name/build/outputs/apk/


0

enter code hereสร้างไฟล์สคริปต์ด้วยคำสั่ง gradle และ adb ด้านล่างเรียกใช้ไฟล์สคริปต์

./gradlew clean

./gradlew AssembleDebug ./gradlew installDebug

adb shell am start -n applicationID / เส้นทางเต็มของกิจกรรมตัวเรียกใช้งาน


0

โปรดทราบว่าคุณสามารถทำได้ภายใน Android Studio โดยคลิกที่หน้าต่างไล่ระดับจากนั้นคลิกปุ่ม "ช้าง" การดำเนินการนี้จะเปิดหน้าต่างใหม่ที่เรียกว่า "run anything" (สามารถค้นหาได้ด้วยการค้นหาชื่อนั้นใน "ค้นหาทุกที่") ซึ่งคุณสามารถพิมพ์คำสั่ง gradle ที่คุณต้องการได้ด้วยตนเองไม่ใช่บรรทัดคำสั่ง "ค่อนข้าง" แต่มักให้มากกว่า สิ่งที่ฉันต้องการมากกว่าบรรทัดคำสั่งของ windows

สิ่งนี้ช่วยให้คุณสามารถกำหนดพารามิเตอร์เสริมสำหรับงานไล่ระดับ ฯลฯ


-2

เพิ่มมูลค่าให้กับคำตอบทั้งหมดนี้

หลายคนถามคำสั่งสำหรับเรียกใช้แอพใน AVD หลังจากสร้างสำเร็จ

adb install -r {path-to-your-bild-folder}/{yourAppName}.apk
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.