Android Studio에서 앱을 만들고 있으며 이제 adb를 통해 디버그하려고합니다. Android라는 단어와 하단 표시 줄의 로고를 클릭하면 logcat이 나타나 내 장치를 인식합니다. 그러면 나는 이것을 본다.
내 앱을 "디버깅 가능"하게하려면 어떻게해야합니까?
참고로 이전에 Eclipse에서이 앱을 개발하고 있었는데 adb가 잘 작동했습니다.
Android Studio에서 앱을 만들고 있으며 이제 adb를 통해 디버그하려고합니다. Android라는 단어와 하단 표시 줄의 로고를 클릭하면 logcat이 나타나 내 장치를 인식합니다. 그러면 나는 이것을 본다.
내 앱을 "디버깅 가능"하게하려면 어떻게해야합니까?
참고로 이전에 Eclipse에서이 앱을 개발하고 있었는데 adb가 잘 작동했습니다.
답변:
도구 모음에 디버그 아이콘 이 있습니다 . 작은 "버그" 처럼 보이며 실행 아이콘 (재생 버튼 모양) 바로 옆에 있습니다 . 그것으로 응용 프로그램을 시작하십시오.
편집 : Gradle과 함께 Android Studio를 사용할 때 다음은 더 이상 사용되지 않습니다.
AndroidManifest.xml 파일 에도 디버그 플래그가 있습니다. 애플리케이션 태그 아래에 있으며 다음과 같이 "true"로 설정해야합니다.
<application android:debuggable="true">
</application>
다음 단계를 수행 한 후이 문제를 해결했습니다.
Tools ==> android ==> ADB 통합 비활성화로 이동하고 다시 활성화하십시오.
그런 다음 장치에서 USB를 분리하고 다시 연결하십시오.
마지막으로 Shift + F9를 누릅니다.
주의해야 할 또 다른 사항 (이렇게해서 알아요). 디버그를 위해 Proguard를 활성화하지 마십시오!
활성화하면
<application android:debuggable="true">
</application>
애플리케이션 manifest.xml 에서 최종 서명 된 apk를 생성 할 때이를 비활성화해야합니다. 이는 공격자의 보안 루프 홀 역할을 할 수 있기 때문입니다. 애플리케이션 중 하나만 로그를 표시하지 않는 경우에만 사용하십시오. 그러나 해당 옵션을 고려하기 전에 다음을 시도하십시오.
Android Studio의 도구로 이동
Tools==>android==>disable adb integration and again enable it
아래 명령을 사용하여 클린 빌드를했습니다. 놀랍게도 효과가있었습니다.
sh gradlew 깨끗한 빌드
누군가가 도움을 받기를 바랍니다!
내 경우에는 줄 근처에 빨간색 원이 빨간색 원과 함께 빨간색 원이 표시되고 "행에서 실행 가능한 코드를 찾을 수 없습니다 ..."라는 메시지와 함께 표시 됩니다 .
을 (를) 업데이트 한 후 문제가 발생했습니다 build.gradle
. Kotlin 지원이 포함되어 많은 메서드가 64K를 초과했습니다. 문제 라인 :
buildTypes {
debug {
minifyEnabled true
다음과 같이 변경하십시오.
buildTypes {
debug {
minifyEnabled false
debuggable true
그런 다음 "Sync Project with Gradle Files"버튼으로 gradle을 동기화합니다. 애플리케이션을 다시 시작한 후 "오류 : .dex 파일의 메서드 참조 수는 64K를 초과 할 수 없습니다. https://developer.android.com/tools/building/ 에서이 문제를 해결하는 방법을 알아보세요. multidex.html "그런 다음 .dex 파일의 메서드 참조 수는 64k API 17을 초과 할 수 없습니다 . 다음 줄을 다음에 추가합니다 build.gradle
.
android {
defaultConfig {
...
// Enabling multidex support.
multiDexEnabled true
}
...
}
dependencies {
implementation 'com.android.support:multidex:1.0.2'
}
최신 정보
에 따르면 https://developer.android.com/studio/build/multidex.html 안드로이드 5.0 아래 multidex 지원을 활성화하려면 다음을 수행하십시오. 그렇지 않으면 이러한 장치에서 시작되지 않습니다.
AndroidManifest
태그를 열고 찾습니다 <application>
. Near android:name=
는 Application 클래스에 대한 참조입니다. 이 수업을 엽니 다. 다음과 MultiDexApplication
같이 응용 프로그램 클래스를 확장하십시오 .
public class MyApplication extends MultiDexApplication { ... }
애플리케이션 클래스가 설정되지 않은 경우 다음과 같이 작성하십시오.
<application
android:name="android.support.multidex.MultiDexApplication" >
...
</application>
저에게는 Proguard를 사용할 때 발생했기 때문에 모든 솔루션을 시도하여 프로젝트를 정리하고 Android Studio에서 디버그 버튼을 누르면 디버깅이 시작되었습니다.
<application android:debuggable="true">
</application>
위의 코드는 더 이상 해결책이 아닙니다. build.gradle 파일 내에서 디버깅을 활성화해야합니다. 빌드 유형이 다른 경우 빌드 유형 중 하나에서 "debuggable true"를 설정해야합니다. 다음은 내 프로젝트 중 하나의 샘플 코드입니다.
buildTypes {
debug {
debuggable true
}
release {
debuggable false
}
}
**이 질문과 관련이없는 buildTypes 내부의 다른 줄을 여기 내 gradle 파일에서 삭제했습니다.
또한 디버깅을 수행하는 동안 Android 스튜디오에서 올바른 빌드 변형을 선택했는지 확인하십시오.