Android Studio : 실행 또는 디버그 전에 APK를 자동으로 제거 (또는 adb 명령 실행)하는 방법은 무엇입니까?


119

이제 Run\DebugAndroid Studio에서 앱을 설치하기 전에 매번 제거해야합니다 . 앱을 \ debug 실행하기 전에 데이터베이스를 다시 만들어야하기 때문입니다. 명령을 실행할 수 있다는 것을 알고 있습니다.

adb uninstall [package_name]

터미널에서 /data/data/[package_name]. 하지만 매번 명령을 실행해야한다면 편리한 방법이 아닙니다. 나는 희망한다

adb uninstall

Run\Debug버튼을 클릭하면 명령이 자동으로 실행됩니다 .


"실행"/ "디버그"프로세스가 시작될 때 앱을 다시 설치하지 않았습니까? 아니면 다른 앱을 제거 하시겠습니까?
cck3rry

@ cck3rry 죄송합니다. 명확하지 않을 수도 있습니다. 앱을 실행 / 디버그하기 전에 데이터베이스를 다시 만들어야하므로 "adb uninstall"명령을 실행하고 싶습니다.
Jagger

다른 접근 방식을 취하고 첫 번째 Activity의 onCreate에서 데이터베이스를 삭제하는 몇 줄의 코드를 작성하지 않겠습니까? 그런 다음 그 후에 다시 만들 수 있습니다. 해제하기 전에이 블록을 삭제하는 것을 잊지 마십시오.
mattgmg1990 2014 년

@ mattgmg1990 즉, git pull / push를 할 때마다 이러한 코드를 추가 / 제거해야합니다. 무슨 고통 ...
Jagger

1
대답은 당신을 위해 유용 할 수
PavelGP

답변:


211
adb uninstall <package_name>

PC를 통해 앱을 제거하는 데 사용할 수 있습니다. Android Studio를 통해 앱을 실행할 때마다 자동으로 실행되도록하려면 다음을 수행 할 수 있습니다.

  1. Android Studio에서 실행 버튼 왼쪽의 드롭 다운 목록을 클릭하고 구성 편집 ...을 선택합니다.
  2. Android 애플리케이션에서 앱을 클릭하고 일반 탭에서 '출시 전'제목을 찾습니다.
  3. + 버튼을 클릭하고 외부 도구 실행을 선택한 다음 팝업 창에서 + 버튼을 클릭합니다.
  4. 이름 (예 : adb uninstall)과 설명을 입력 adb하고 Program : 및 uninstall <your-package-name>Parameters :를 입력합니다. 팝업 창에서 확인을 클릭 할 때 새 항목이 선택되었는지 확인하십시오.

참고 : PATH 환경 변수에 adb가없는 경우 Program : 필드에 adb의 전체 경로 (예 : / home / user / android / sdk / platform-tools / adb)를 제공합니다.


2
몇 가지 팁 / 참고 : 두 개 이상의 에뮬레이터 또는 장치를 실행하는 경우 adb -s <devicename>을 포함하는 것이 좋습니다. Android Studio의 매크로가 제대로 작동하지 않으므로 (v1.50.x) adb 또는 환경 경로에 전체 경로를 입력해야합니다.
Nick

@aravindsagar 기기의 모든 패키지를 나열했는데 내 앱의 패키지 이름이 없었지만 여전히 실패 가 표시됩니다. [DELETE_FAILED_INTERNAL_ERROR] 왜 이런 일이 발생하는지 알 수 있나요 ??
Dinesh Phalwadiya

91

adb uninstall com.my.firstapp

5
pakage 이름을 모르지만 apk가있는 경우이 stackoverflow.com/a/37324607/812915
equiman

1
내용을 보면 "안드로이드 스튜디오에서 디버그 / 실행하기 전에 자동으로 제거"라는 질문이었습니다. 이 답변은 "자동"솔루션을 제공하지 않았습니다. 우리는 좀 더 게으르지 않습니까? :)
Jagger

15

다음을 기준으로 패키지를 나열합니다.

adb shell su 0 pm list packages

제거 할 패키지를 검토하고 여기에서 패키지 이름을 복사합니다. 예를 들면 :

com.android.calculator2

마지막으로 입력 :

adb uninstall com.android.calculator2 

그리고 당신은 끝났습니다.


4
루팅되지 않은 사람들의 su 0경우 list packages 명령에서 생략 하십시오.
villecoder

12

나는 Android Studio 2.1.2. OP와 동일한 요구 사항이 있습니다. 위의 두 답변이 모두에게 도움이되는 것 같았지만 저에게는 효과가 없었습니다. 나는 나를 위해 일한 것을 공유하고 있습니다.

로 이동하십시오 main menu/Run/Edit Configuration. 왼쪽 app에서 아래 Android Application를 선택 하면 다중 탭 창이 열립니다. 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

저는 "adb idea"라는 Android Studio 플러그인을 사용합니다. 연결된 모든 장치 또는 시뮬레이션 된 장치에서 대상으로 지정할 수있는 다양한 기능 (제거, 종료, 시작 등)에 대한 드롭 다운 메뉴가 있습니다. adb 명령의 힘에 대해 더 깊이 이해하는 데 한 걸음 멀어 질 수 있다고 주장 할 수 있으며 아마도 동의 할 것입니다 .... 어쨌든 나는 실제로 더 낮은 수준의 이해 수준에서 작동하고 있기 때문에 도우미. ADB 아이디어 여기에 이미지 설명 입력


3

간단한 3 단계 프로세스 (Mac 터미널에서 확인)

  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.