AWS Device Farm 팜에서의 Android 애플리케이션 테스트 문제 해결 - AWS Device Farm

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS Device Farm 팜에서의 Android 애플리케이션 테스트 문제 해결

다음 항목에서는 Android 애플리케이션 테스트를 업로드하는 동안 발생하는 오류 메시지를 나열하고 각 오류를 해결하기 위한 해결 방법을 권장합니다.

참고

아래 지침은 Linux x86_64 및 Mac을 기반으로 합니다.

안드로이드_앱_압축 해제_실패

다음 메시지가 표시됩니다. 다음 단계에 따라 문제를 해결하십시오.

주의

신청서를 열 수 없습니다. 파일이 올바른지 확인하고 다시 시도하십시오.

오류 없이 애플리케이션 패키지의 압축을 풀 수 있는지 확인하십시오. 다음 예에서 패키지 이름은 입니다.app-debug.apk.

  1. 테스트 패키지를 작업 디렉터리에 복사한 후 다음 명령을 실행합니다.

    $ unzip app-debug.apk
  2. 패키지의 압축을 성공적으로 풀었으면 다음 명령을 실행하여 작업 디렉토리 트리 구조를 찾을 수 있습니다.

    $ tree .

    유효한 Android 애플리케이션 패키지는 다음과 같은 출력이 생성됩니다.

    . |-- AndroidManifest.xml |-- classes.dex |-- resources.arsc |-- assets (directory) |-- res (directory) `-- META-INF (directory)

    자세한 정보는 AWS Device Farm 팜에서 Android 테스트 사용을 참조하십시오.

안드로이드_앱_AAPT_디버그_배지_실패

다음 메시지가 표시됩니다. 다음 단계에 따라 문제를 해결하십시오.

주의

지원서에 대한 정보를 추출할 수 없습니다. 다음 명령을 실행하여 응용 프로그램이 올바른지 확인하십시오.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 테스트 사용을 참조하십시오.

안드로이드_앱_패키지_이름_값_누락

다음 메시지가 표시됩니다. 다음 단계에 따라 문제를 해결하십시오.

주의

애플리케이션에서 패키지 이름 값을 찾을 수 없습니다. 다음 명령을 실행하여 응용 프로그램이 올바른지 확인하십시오.aapt debug badging <path to your test package>를 누르고 키워드 “package: name” 뒤에 있는 패키지 이름 값을 찾은 후 다시 시도하십시오.

업로드 검증 프로세스 중에 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 테스트 사용을 참조하십시오.

안드로이드_앱_SDK_버전_가치_누락

다음 메시지가 표시됩니다. 다음 단계에 따라 문제를 해결하십시오.

주의

애플리케이션에서 SDK 버전 값을 찾을 수 없습니다. 다음 명령을 실행하여 응용 프로그램이 올바른지 확인하십시오.aapt debug badging <path to your test package>을 누르고 키워드 뒤에 있는 SDK 버전 값을 찾은 후 다시 시도하십시오.sdkVersion.

업로드 검증 프로세스 중에 AWS Device Farm은 다음 항목의 출력에서 SDK 버전 값을 파싱합니다.aapt debug badging <path to your package>명령.

Android 애플리케이션에서 이 명령을 실행하고 패키지 이름 값을 성공적으로 찾을 수 있는지 확인합니다. 다음 예에서 패키지 이름은 입니다.app-debug.apk.

  • 애플리케이션 패키지를 작업 디렉토리에 복사한 후 다음 명령을 실행합니다.

    $ aapt debug badging app-debug.apk | grep "sdkVersion"

    유효한 Android 애플리케이션 패키지는 다음과 같은 출력이 생성됩니다.

    sdkVersion:'9'

    자세한 정보는 AWS Device Farm 팜에서 Android 테스트 사용을 참조하십시오.

안드로이드_앱_AAPT_덤프_XML트리_실패

다음 메시지가 표시됩니다. 다음 단계에 따라 문제를 해결하십시오.

주의

유효한 항목을 찾을 수 없습니다. 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 테스트 사용을 참조하십시오.

안드로이드_앱_디바이스_관리자_권한

다음 메시지가 표시됩니다. 다음 단계에 따라 문제를 해결하십시오.

주의

애플리케이션에 기기 관리자 권한이 필요하다는 것을 확인했습니다. 다음 명령을 실행하여 권한이 필요하지 않은지 확인하십시오.aapt dump xmltree <path to your test package> AndroidManifest.xml를 누르고 출력에 키워드가 포함되어 있지 않은지 확인한 후 다시 시도하십시오.android.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 테스트 사용 단원을 참조하세요.