기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWS Device Farm에서 Android 애플리케이션 테스트 문제 해결
다음 주제에서는 Android 애플리케이션 테스트를 업로드하는 동안 발생하는 오류 메시지를 나열하고 각 오류를 해결하기 위한 방법을 권장합니다.
참고
다음 지침은 Linux x86_64 및 Mac을 기반으로 합니다.
ANDROID_APP_UNZIP_FAILED
다음 메시지가 표시되면 다음 단계에 따라 문제를 해결하세요.
주의
애플리케이션을 열 수 없습니다. 파일이 유효한지 확인하고 다시 시도하세요.
응용 프로그램 패키지의 압축을 오류 없이 풀 수 있는지 확인하세요. 다음 예제에서 패키지 이름은 app-debug.apk입니다.
-
작업 디렉터리에 테스트 패키지를 복사한 후 다음 명령을 실행하세요.
$ unzip app-debug.apk
-
패키지 압축을 성공적으로 푼 후에는 다음 명령을 실행하여 작업 디렉터리 트리 구조를 찾을 수 있습니다.
$ tree .
Android 애플리케이션 패키지는 다음과 같은 출력이 생성됩니다.
. |-- AndroidManifest.xml |-- classes.dex |-- resources.arsc |-- assets (directory) |-- res (directory) `-- META-INF (directory)
자세한 내용은 AWS Device Farm의 Android 테스트 단원을 참조하십시오.
ANDROID_APP_AAPT_DEBUG_BADGING_FAILED
다음 메시지가 표시되면 다음 단계에 따라 문제를 해결하세요.
주의
애플리케이션에 대한 정보를 추출할 수 없습니다. aapt debug badging
명령을 실행하여 응용 프로그램이 유효한지 확인하고 명령에서 오류가 출력되지 않으면 다시 시도하세요.<path to your test
package>
업로드 검증 프로세스 중에 AWS Device Farm은 aapt debug badging
명령의 출력에서 정보를 구문 분석합니다.<path to your package>
Android 애플리케이션에서 이 명령을 성공적으로 실행할 수 있는지 확인하세요. 다음 예제에서 패키지 이름은 app-debug.apk입니다.
-
애플리케이션 패키지를 작업 디렉터리에 복사한 다음 명령을 실행하세요.
$ aapt debug badging app-debug.apk
Android 애플리케이션 패키지는 다음과 같은 출력이 생성됩니다.
package: name='com.amazon.aws.adf.android.referenceapp' versionCode='1' versionName='1.0' platformBuildVersionName='5.1.1-1819727' sdkVersion:'9' application-label:'ReferenceApp' application: label='ReferenceApp' icon='res/mipmap-mdpi-v4/ic_launcher.png' application-debuggable launchable-activity: name='com.amazon.aws.adf.android.referenceapp.Activities.MainActivity' label='ReferenceApp' icon='' uses-feature: name='android.hardware.bluetooth' uses-implied-feature: name='android.hardware.bluetooth' reason='requested android.permission.BLUETOOTH permission, and targetSdkVersion > 4' main supports-screens: 'small' 'normal' 'large' 'xlarge' supports-any-density: 'true' locales: '--_--' densities: '160' '213' '240' '320' '480' '640'
자세한 내용은 AWS Device Farm의 Android 테스트 단원을 참조하십시오.
ANDROID_APP_PACKAGE_NAME_VALUE_MISSING
다음 메시지가 표시되면 다음 단계에 따라 문제를 해결하세요.
주의
애플리케이션에서 패키지 이름 값을 찾을 수 없습니다. aapt debug badging
명령을 실행하여 애플리케이션이 유효한지 확인하고 “package: name” 키워드 뒤에 있는 패키지 이름 값을 찾은 후 다시 시도하세요.<path to your test
package>
업로드 검증 프로세스 중에 AWS Device Farm은 aapt debug badging
명령의 출력에서 패키지 이름 값을 구문 분석합니다.<path to your package>
Android 애플리케이션에서 이 명령을 실행하고 패키지 이름 값을 성공적으로 찾을 수 있는지 확인하세요. 다음 예제에서 패키지 이름은 app-debug.apk입니다.
-
작업 디렉터리에 애플리케이션 패키지를 복사한 후 다음 명령을 실행하세요.
$ aapt debug badging app-debug.apk | grep "package: name="
Android 애플리케이션 패키지는 다음과 같은 출력이 생성됩니다.
package: name='com.amazon.aws.adf.android.referenceapp' versionCode='1' versionName='1.0' platformBuildVersionName='5.1.1-1819727'
자세한 내용은 AWS Device Farm의 Android 테스트 단원을 참조하십시오.
ANDROID_APP_SDK_VERSION_VALUE_MISSING
다음 메시지가 표시되면 다음 단계에 따라 문제를 해결하세요.
주의
애플리케이션에서 SDK 버전 값을 찾을 수 없습니다. 명령을 실행하여 애플리케이션이 유효한지 확인하고 키워드 뒤에 있는 SDK 버전 값을 찾은 후 다시 aapt debug badging
시도하세요<path to your test package>
sdkVersion
.
업로드 검증 프로세스 중에 AWS Device Farm은 aapt debug badging
명령의 출력에서 SDK 버전 값을 구문 분석합니다.<path to your package>
Android 애플리케이션에서 이 명령을 실행하고 패키지 이름 값을 성공적으로 찾을 수 있는지 확인하세요. 다음 예제에서 패키지 이름은 app-debug.apk입니다.
-
작업 디렉터리에 애플리케이션 패키지를 복사한 후 다음 명령을 실행하세요.
$ aapt debug badging app-debug.apk | grep "sdkVersion"
Android 애플리케이션 패키지는 다음과 같은 출력이 생성됩니다.
sdkVersion:'9'
자세한 내용은 AWS Device Farm의 Android 테스트 단원을 참조하십시오.
ANDROID_APP_AAPT_DUMP_XMLTREE_FAILED
다음 메시지가 표시되면 다음 단계에 따라 문제를 해결하세요.
주의
애플리케이션에서 유효한 AndroidManifest.xml을 찾을 수 없습니다. aapt dump xmltree
명령을 실행하여 테스트 패키지가 유효한지 확인하고 명령에서 오류가 출력되지 않으면 다시 시도하세요.<path to your test
package>
AndroidManifest.xml
업로드 검증 프로세스 중에 AWS Device Farm은 명령을 사용하여 패키지 내에 포함된 XML 파일에 대해 XML 구문 분석 트리의 정보를 구문 분석합니다aapt dump xmltree
.<path to your package>
AndroidManifest.xml
Android 애플리케이션에서 이 명령을 성공적으로 실행할 수 있는지 확인하세요. 다음 예제에서 패키지 이름은 app-debug.apk입니다.
-
작업 디렉터리에 애플리케이션 패키지를 복사한 후 다음 명령을 실행하세요.
$ aapt dump xmltree app-debug.apk. AndroidManifest.xml
Android 애플리케이션 패키지는 다음과 같은 출력이 생성됩니다.
N: android=http://schemas.android.com/apk/res/android E: manifest (line=2) A: android:versionCode(0x0101021b)=(type 0x10)0x1 A: android:versionName(0x0101021c)="1.0" (Raw: "1.0") A: package="com.amazon.aws.adf.android.referenceapp" (Raw: "com.amazon.aws.adf.android.referenceapp") A: platformBuildVersionCode=(type 0x10)0x16 (Raw: "22") A: platformBuildVersionName="5.1.1-1819727" (Raw: "5.1.1-1819727") E: uses-sdk (line=7) A: android:minSdkVersion(0x0101020c)=(type 0x10)0x9 A: android:targetSdkVersion(0x01010270)=(type 0x10)0x16 E: uses-permission (line=11) A: android:name(0x01010003)="android.permission.INTERNET" (Raw: "android.permission.INTERNET") E: uses-permission (line=12) A: android:name(0x01010003)="android.permission.CAMERA" (Raw: "android.permission.CAMERA")
자세한 내용은 AWS Device Farm의 Android 테스트 단원을 참조하십시오.
ANDROID_APP_DEVICE_ADMIN_PERMISSIONS
다음 메시지가 표시되면 다음 단계에 따라 문제를 해결하세요.
주의
애플리케이션에 디바이스 관리자 권한이 필요한 것으로 확인되었습니다. aapt dump xmltree
명령을 실행하여 권한이 필요하지 않은지 확인하고 출력에 키워드 <path to your test package>
AndroidManifest.xmlandroid.permission.BIND_DEVICE_ADMIN
가 포함되어 있지 않은지 확인한 후 다시 시도하세요.
업로드 검증 프로세스 중에 AWS Device Farm은 명령 을 사용하여 패키지에 포함된 xml 파일에 대한 xml 구문 분석 트리의 권한 정보를 구문 분석합니다aapt dump xmltree
.<path to your package>
AndroidManifest.xml
애플리케이션에 디바이스 관리자 권한이 필요하지 않은지 확인하세요. 다음 예제에서 패키지 이름은 app-debug.apk입니다.
-
작업 디렉터리에 애플리케이션 패키지를 복사한 후 다음 명령을 실행하세요.
$ aapt dump xmltree app-debug.apk AndroidManifest.xml
그러면 다음과 같은 결과가 표시됩니다.
N: android=http://schemas.android.com/apk/res/android E: manifest (line=2) A: android:versionCode(0x0101021b)=(type 0x10)0x1 A: android:versionName(0x0101021c)="1.0" (Raw: "1.0") A: package="com.amazonaws.devicefarm.android.referenceapp" (Raw: "com.amazonaws.devicefarm.android.referenceapp") A: platformBuildVersionCode=(type 0x10)0x16 (Raw: "22") A: platformBuildVersionName="5.1.1-1819727" (Raw: "5.1.1-1819727") E: uses-sdk (line=7) A: android:minSdkVersion(0x0101020c)=(type 0x10)0xa A: android:targetSdkVersion(0x01010270)=(type 0x10)0x16 E: uses-permission (line=11) A: android:name(0x01010003)="android.permission.INTERNET" (Raw: "android.permission.INTERNET") E: uses-permission (line=12) A: android:name(0x01010003)="android.permission.CAMERA" (Raw: "android.permission.CAMERA") ……
Android 애플리케이션이 유효한 경우 출력에는 다음
A: android:name(0x01010003)="android.permission.BIND_DEVICE_ADMIN" (Raw: "android.permission.BIND_DEVICE_ADMIN")
이 포함되지 않아야 합니다.자세한 내용은 AWS Device Farm의 Android 테스트 단원을 참조하세요.
Android 애플리케이션의 특정 창에 빈 화면이나 검은색 화면이 표시됩니다.
Android 애플리케이션을 테스트하는 중에 Device Farm의 테스트 동영상 녹화에서 애플리케이션의 특정 창이 검은색 화면으로 표시되는 경우 애플리케이션이 Android FLAG_SECURE
기능을 사용하고 있을 수 있습니다. 이 플래그(Android 공식 문서
이 플래그는 개발자가 로그인 페이지와 같은 민감한 정보가 포함된 응용 프로그램 페이지에 자주 사용합니다. 로그인 페이지와 같은 특정 페이지에서 애플리케이션 화면 대신 검은색 화면이 표시되는 경우 개발자에게 문의하여 테스트용으로 이 플래그를 사용하지 않는 애플리케이션 빌드를 구하세요.
또한 Device Farm은 여전히 이 플래그가 있는 응용 프로그램 창과 상호 작용할 수 있습니다. 그러므로 애플리케이션의 로그인 페이지가 검은색 화면으로 표시되는 경우에도 보안 인증 정보를 입력하여 애플리케이션에 로그인할 수 있습니다. 따라서 FLAG_SECURE
플래그로 차단되지 않은 페이지를 볼 수 있습니다.