簡體   English   中英

Travis CI Android仿真器中的EACCES(權限被拒絕)

[英]EACCES (Permission denied) in Travis CI Android Emulator

我使用帶有Android API 22模擬器的Espresso在本地測試了我的應用程序,並且可以正常工作。 我的Manifest.xml中有這個:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

我還根據Android 23之后的要求在運行時請求權限。但是,當Travis CI使用相同的API模擬器運行測試時,該應用會引發錯誤:

02:10:29 V/InstrumentationResultParser: Caused by: java.io.FileNotFoundException: /storage/sdcard/dd3c49bc-efdb-41b9-90af-e814ca17c59d.png: open failed: EACCES (Permission denied)

這是我的.travis.yml

language: android
jdk: oraclejdk8
sudo: false

android:
  components:
    - tools
    - platform-tools
    - build-tools-28.0.3
    - android-28
    - android-22
    - extra-google-google_play_services
    - extra-google-m2repository
    - extra-android-m2repository
    - sys-img-armeabi-v7a-android-22

before_script:
  - touch local.properties
  - chmod +x gradlew
  - echo no | android create avd --force -n test -t android-22 --abi armeabi-v7a
  - emulator -avd test -no-audio -no-window &
  - android-wait-for-emulator
  - adb shell input keyevent 82 &

script:
 - ./gradlew clean build connectedCheck

這是Travis正在建立的倉庫:

Android的缺口

如果您克隆它,請使用Android Studio打開並運行測試,您會看到它不會引發該錯誤。 我該如何解決?

為了在Android Emulator映像上使用外部存儲,您需要創建外部存儲。 您可以使用可以添加路徑的現成映像,也可以使用-c參數提供sd卡映像的大小。

https://developer.android.com/studio/tools/help/android

有同樣的問題。 刪除並添加Android平台再次修復了該錯誤,但現在該應用因最微小的UI更改而崩潰,沒有任何錯誤。 我必須每次重新啟動應用程序才能使其再次運行。

還有一件事

SD卡側面有一個“寫鎖”滑塊,與觸點成90度角。

確保您的SD卡已啟用寫入功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM