Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android eclipse emulator SD卡权限被拒绝_Android_Eclipse - Fatal编程技术网

android eclipse emulator SD卡权限被拒绝

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

在尝试将文件从资产复制到单元测试项目的/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
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" />