android eclipse emulator SD卡权限被拒绝
在尝试将文件从资产复制到单元测试项目的/SD卡时,我遇到了“open-field:EACCES(权限被拒绝)”错误。在过去的两个小时里,我一直在搜索和尝试各种变化。可能遗漏了一些愚蠢的小细节,希望有人能看到 我使用的是ADT build v22.3.0-887826。构建目标是谷歌API 2.2平台。尝试4.4.2,结果相同。AVD为4.4.2 LogCat是:android eclipse emulator SD卡权限被拒绝,android,eclipse,Android,Eclipse,在尝试将文件从资产复制到单元测试项目的/SD卡时,我遇到了“open-field:EACCES(权限被拒绝)”错误。在过去的两个小时里,我一直在搜索和尝试各种变化。可能遗漏了一些愚蠢的小细节,希望有人能看到 我使用的是ADT build v22.3.0-887826。构建目标是谷歌API 2.2平台。尝试4.4.2,结果相同。AVD为4.4.2 LogCat是: MediaPlayerServiceTest(3324): copy test files MediaPlayerServiceTes
MediaPlayerServiceTest(3324): copy test files
MediaPlayerServiceTest(3324): File copy testfile.mp3 exception. java.io.FileNotFoundException: /storage/sdcard/testfiles/testfile.mp3: open failed: EACCES (Permission denied)
我正在测试一个管理媒体播放器的服务,以便该类
public class MediaPlayerServiceTest extends ServiceTestCase<MediaPlayerService>
尝试了许多不同的使用权限。当前舱单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="zookey.GPS.test"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="8" />
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="zookey.GPS" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<uses-library android:name="android.test.runner" />
</application>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
</manifest>
我成功地将文件推送到/storage/sdcard:
C:\Users\Bruce\android-sdks\platform-tools>adb -s emulator-5554 push F:\BBPro_link.mp3 /storage/sdcard/testfiles
100 KB/s (5464 bytes in 0.053s)
多次重建ADV。
等等等等等等
任何建议都会非常有用。在清单文件中插入:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
解决方案是在我的主应用程序中创建一个小型服务来复制文件。在安装过程中从单元测试调用此服务。使用if exists防止在每次测试设置时复制文件。是的,这是我修复的第一件事。代码中有一个bug。“if(sdcard.canWrite())”应该是“if(!sdcard.canWrite())”。LogCat现在显示“无法写入SD卡”。仍然无法回答为什么无法写入SD卡的问题,但至少canWrite()方法的行为正常。可能与作为测试项目有关。这是另一个处理同样问题的人。他也没有解决办法。是的,它与作为一个测试项目有关。我在我的主应用程序中创建了一个简单的服务来复制文件,它工作得很好。这似乎是一个合理的请求,能够将测试文件(在本例中是音频文件)从单元测试项目复制到SD卡,以便主应用程序可以在运行单元测试时访问它们。
C:\Users\Bruce\android-sdks\platform-tools>adb -s emulator-5554 push F:\BBPro_link.mp3 /storage/sdcard/testfiles
100 KB/s (5464 bytes in 0.053s)
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />