[英]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 Studio打開並運行測試,您會看到它不會引發該錯誤。 我該如何解決?
為了在Android Emulator映像上使用外部存儲,您需要創建外部存儲。 您可以使用可以添加路徑的現成映像,也可以使用-c參數提供sd卡映像的大小。
有同樣的問題。 刪除並添加Android平台再次修復了該錯誤,但現在該應用因最微小的UI更改而崩潰,沒有任何錯誤。 我必須每次重新啟動應用程序才能使其再次運行。
還有一件事
SD卡側面有一個“寫鎖”滑塊,與觸點成90度角。
確保您的SD卡已啟用寫入功能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.