Android Studio: วิธีถอนการติดตั้ง APK (หรือรันคำสั่ง adb) โดยอัตโนมัติก่อน Run หรือ Debug?


119

ตอนนี้ฉันต้องถอนการติดตั้งแอปทุกครั้งก่อนที่จะRun\Debugใช้งานใน Android Studio เนื่องจากฉันต้องสร้างฐานข้อมูลใหม่ก่อนที่จะเรียกใช้ \ debug แอป ฉันรู้ว่าฉันสามารถเรียกใช้คำสั่งได้

adb uninstall [package_name]

ในเทอร์มินัลเพื่อล้างไฟล์ภายใต้/data/data/[package_name]. แต่มันไม่ใช่วิธีที่สะดวกถ้าฉันต้องรันคำสั่งทุกครั้ง ฉันหวังว่า

adb uninstall

คำสั่งสามารถดำเนินการโดยอัตโนมัติเมื่อฉันคลิกRun\Debugปุ่ม


มันติดตั้งแอปของคุณใหม่เมื่อเริ่มต้นกระบวนการ "เรียกใช้" / "แก้ไขข้อบกพร่อง" ใช่หรือไม่ หรือคุณตั้งใจจะถอนการติดตั้งแอพอื่น?
cck3rry

@ cck3rry ขออภัยอาจจะไม่ค่อยชัด ฉันต้องการเรียกใช้คำสั่ง "adb uninstall" เพราะฉันต้องสร้างฐานข้อมูลใหม่ก่อนที่จะเรียกใช้ / ดีบักแอป
Jagger

ทำไมคุณไม่ใช้วิธีการอื่นและเขียนโค้ดสองสามบรรทัดที่จะลบฐานข้อมูลใน onCreate of your first Activity? จากนั้นคุณสามารถสร้างขึ้นใหม่ได้หลังจากนั้น อย่าลืมลบบล็อกนี้ก่อนที่จะปล่อย
mattgmg1990

@ mattgmg1990 นั่นหมายความว่าฉันต้องเพิ่ม / ลบโค้ดดังกล่าวทุกครั้งเมื่อฉันทำการดึง / ดันคอมไพล์ ช่างเป็นความเจ็บปวด ...
Jagger

1
คำตอบนี้อาจเป็นประโยชน์สำหรับคุณ
PavelGP

คำตอบ:


211
adb uninstall <package_name>

สามารถใช้เพื่อถอนการติดตั้งแอพผ่านพีซีของคุณ หากคุณต้องการให้สิ่งนี้เกิดขึ้นโดยอัตโนมัติทุกครั้งที่คุณเปิดแอปผ่าน Android Studio คุณสามารถทำได้:

  1. ใน Android Studio ให้คลิกรายการแบบเลื่อนลงทางด้านซ้ายของปุ่มเรียกใช้แล้วเลือกแก้ไขการกำหนดค่า ...
  2. คลิกที่แอปภายใต้แอปพลิเคชัน Android และในแท็บทั่วไปค้นหาหัวข้อ 'ก่อนเปิดตัว'
  3. คลิกปุ่ม + เลือกเรียกใช้เครื่องมือภายนอกคลิกปุ่ม + ในหน้าต่างป๊อปอัป
  4. ตั้งชื่อ (เช่นถอนการติดตั้ง adb) และคำอธิบายแล้วพิมพ์adbProgram: และuninstall <your-package-name>ใน Parameters:. ตรวจสอบให้แน่ใจว่าได้เลือกรายการใหม่แล้วเมื่อคุณคลิกตกลงในหน้าต่างป๊อปอัป

หมายเหตุ: หากคุณไม่มี adb ในตัวแปรสภาพแวดล้อม PATH ให้กำหนดเส้นทางแบบเต็มไปยัง adb ใน Program: field (เช่น / home / user / android / sdk / platform-tools / adb)


2
เคล็ดลับ / หมายเหตุ: หากคุณใช้โปรแกรมจำลองหรืออุปกรณ์มากกว่าหนึ่งเครื่องคุณจะต้องใส่ adb -s <devicename> มาโครใน Android Studio ทำงานไม่ถูกต้อง (v1.50.x) ดังนั้นคุณต้องใส่เส้นทางแบบเต็มสำหรับ adb หรือในเส้นทางสภาพแวดล้อม
นิค

@aravindsagar ฉันแสดงรายการแพ็คเกจทั้งหมดของอุปกรณ์ของฉันและชื่อแพ็กเกจของแอปของฉันไม่อยู่ที่นั่น แต่ก็ยังแสดงFailure [DELETE_FAILED_INTERNAL_ERROR] ฉันคิดว่าทำไมจึงเกิดขึ้น ??
Dinesh Phalwadiya

ที่ไม่ได้กำจัดแอปพลิเคชันที่ติดตั้งไว้ล่วงหน้าใช่ไหม
CodingOnSteroid

91

ตัวอย่าง

adb uninstall com.my.firstapp

5
ถ้าไม่ทราบชื่อเพจเกจ แต่มี apk สามารถรับได้ด้วยstackoverflow.com/a/37324607/812915
equiman

1
หากคุณได้ดูเนื้อหาฉันขอให้ "ถอนการติดตั้งโดยอัตโนมัติก่อนที่จะแก้ไขข้อบกพร่อง / เรียกใช้ใน Android Studio" คำตอบนี้ไม่ได้ให้คำตอบแบบ "อัตโนมัติ" เราควรจะขี้เกียจมากกว่าใช่มั้ย? :)
Jagger

16

แสดงรายการแพ็คเกจตาม:

adb shell su 0 pm list packages

ตรวจสอบแพ็คเกจที่คุณต้องการถอนการติดตั้งและคัดลอกชื่อแพ็กเกจจากที่นั่น ตัวอย่างเช่น:

com.android.calculator2

สุดท้ายพิมพ์:

adb uninstall com.android.calculator2 

และคุณทำเสร็จแล้ว


4
สำหรับคนที่ไม่ได้รูทให้ละเว้นsu 0จากคำสั่ง list package
villecoder

12

ฉันใช้Android Studio 2.1.2. ฉันมีความต้องการเช่นเดียวกับ OP แม้ว่าคำตอบข้างต้นสองข้อดูเหมือนจะช่วยทุกคนได้ แต่ก็ไม่ได้ผลสำหรับฉัน ฉันกำลังแบ่งปันสิ่งที่ได้ผลสำหรับฉัน

main menu/Run/Edit Configurationไปที่ เลือกappภายใต้Android Applicationบน left.This ควรเปิดบานหน้าต่างหลายแท็บ เลือกGeneralแท็บ (จะเป็นค่าเริ่มต้น) คลิกสีเขียว+ร้องเพลงที่ด้านล่าง (ข้อความด้านล่างBefore launch: Gradle -awake ...)

ดรอปดาวน์จะปรากฏขึ้นให้เลือกGradle-aware-makeตัวเลือก กล่องข้อความอื่นจะปรากฏขึ้น ป้อน:app:uninstallAllในกล่องข้อความนี้ (คุณสามารถใช้ctrl+ spaceเพื่อใช้การเติมข้อความอัตโนมัติเพื่อระบุเป้าหมายที่ถูกต้องโดยไม่ต้องพิมพ์ทุกอย่างและยังช่วยให้คุณเลือกชื่อแอปที่เหมาะสมสำหรับคุณ) apply/okและการตั้งค่า เปิดแอปของคุณใหม่

หมายเหตุ: ทุกครั้งที่คุณเปิดแอปทันทีเป้าหมายใหม่นี้จะพยายามถอนการติดตั้งแอปของคุณจากโปรแกรมจำลองหรืออุปกรณ์ของคุณ ดังนั้นหากอุปกรณ์ทดสอบของคุณไม่พร้อมใช้งานตัวเรียกใช้งานของคุณอาจล้มเหลวขณะถอนการติดตั้ง แต่จะเริ่มโปรแกรมจำลองของคุณต่อไป ดังนั้นไม่ว่าจะเริ่มโปรแกรมจำลองของคุณก่อนหรือเปิดตัวอีกครั้งหลังจากล้มเหลวครั้งแรกอีกครั้ง (เนื่องจากการเปิดตัวครั้งแรกจะเริ่มโปรแกรมจำลองแม้ว่าการถอนการติดตั้งจะล้มเหลว)


1
ใช้งานได้ดี แต่คุณต้องแทนที่appด้วยชื่อโมดูลจริงของคุณเช่นmyMainApp.
Jimbali

1
ใช่เพียงใช้ctrl+ spaceบนป๊อปอัปเพื่อใช้การเติมข้อความอัตโนมัติ เป็นตัวกำหนดแอปด้วย
Jimmy

11

หากคุณต้องการถอนการติดตั้งเมื่อเชื่อมต่อกับอุปกรณ์ / โปรแกรมจำลองเครื่องเดียวให้ใช้คำสั่งด้านล่าง

adb uninstall <package name>

อื่นกับอุปกรณ์หลายเครื่องจากนั้นใช้คำสั่งด้านล่าง

adb -s <device ID> uninstall <package name>

4

ฉันใช้ปลั๊กอิน Android Studio ที่เรียกว่า "adb idea" - มีเมนูแบบเลื่อนลงสำหรับฟังก์ชันต่างๆ (ถอนการติดตั้งฆ่าเริ่ม ฯลฯ ) ที่คุณสามารถกำหนดเป้าหมายไปที่อุปกรณ์ที่เชื่อมต่อหรือจำลองได้ อาจมีคนโต้แย้งว่าฉันต้องใช้เวลาอีกขั้นหนึ่งในการทำความเข้าใจอย่างลึกซึ้งเกี่ยวกับพลังของคำสั่ง adb และฉันก็อาจจะเห็นด้วย .... แม้ว่าฉันจะทำงานในระดับที่ต่ำกว่าของความเข้าใจอยู่แล้วก็ตามดังนั้นสำหรับฉันแล้วมันก็ช่วยได้ ผู้ช่วย ADB Idea ใส่คำอธิบายภาพที่นี่


3

กระบวนการสามขั้นตอนง่ายๆ(ตรวจสอบบนเครื่อง Mac)

  1. เชื่อมต่ออุปกรณ์ Android ของคุณ (โปรดเชื่อมต่ออุปกรณ์ Android 1 เครื่องในแต่ละครั้ง) ควรใช้สายเคเบิลและยืนยันการเชื่อมต่อโดย (ซึ่งจะแสดงรายการ ID อุปกรณ์ ID ของอุปกรณ์)

    adb devices
  2. จากนั้นเพื่อแสดงรายการแพ็กเกจแอพทั้งหมดบนอุปกรณ์ที่เชื่อมต่อโดยเรียกใช้บนเทอร์มินัล

    adb shell pm list packages -f -3 
  3. จากนั้นถอนการติดตั้งตามที่อธิบายไว้ก่อนหน้านี้

    adb uninstall <package_name> 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.