当前位置: 首页 > 知识库问答 >
问题:

Android:文件在模拟器中工作但在设备中给出错误?

贲绪
2023-03-14

我只是试图通过代码将文件上传到服务器,如果我从模拟器访问文件,

路径data/app/07312012_135528.3gp并获得服务器响应200,确定

但当我通过设备访问文件上传时,会给出错误400,当文件存在于SDCard中时,它会通过file.exists()检查。

我的手机是三星Galaxy Ace

HttpPost postRequest = new HttpPost(ServerURL);
MultipartEntity reqEntity = new MultipartEntity();
File dir = Environment.getExternalStorageDirectory();
File yourFile = new File(dir, "tdsongdata/07312012_135528.3gp");
// path becomes "/mnt/sdcard/tdsongdata/07312012_135528.3gp"

if(yourFile.exists())
{
    reqEntity.addPart("email", new StringBody("esetylo@gmail.com"));
    reqEntity.addPart("password", new StringBody("123"));
    reqEntity.addPart("title", new StringBody("The new file"));         
    reqEntity.addPart("musicData", new FileBody(yourFile));
}

但当我尝试从设备中的相同路径播放时,它会成功地播放音频

MediaPlayer mp = new MediaPlayer();
try {
        mp.setDataSource("/mnt/sdcard/tdsongdata/07312012_135528.3gp");
    mp.prepare();
    mp.start(); 
} catch (IllegalArgumentException e) {
        e.printStackTrace();
} catch (IllegalStateException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}

我不明白问题出在哪里,请帮帮我

共有1个答案

欧阳俊逸
2023-03-14

将您的电话语言更改为英语(美国)。重新启动设备,然后重试。

 类似资料:
  • 我是android新手,我能够在kotlin中为我的应用程序设置firebase。如果我在Nexus 5X API 27 emulator中运行该应用程序,我就能够获取数据库,但当我在实际设备三星S5(Google play Services V 12.5.29,android V 5.0)中运行该应用程序时,我无法获得addValueEventListener回调。 Gradle文件: 我知道这

  • 我正在开发一个颤抖应用程序,其中包括谷歌登录火库。Google登录在模拟器上可以正常工作,但是当我导出签名捆绑包并在物理设备上进行测试时。它不起作用。我需要在 gradle 文件中添加任何内容吗?有人可以指导我吗?

  • 这个应用程序有多个环境,其中这是托管,如,qa,UAT,生产。我可以通过一个屏幕改变环境,只有在摇动一个真正的设备后才来。 不幸的是,Android Studio3没有给出一个直接摇晃设备的选项。如何在模拟器中实现此抖动动作?

  • 这个小部件在模拟器4.1.2上工作得很好,当安装在真正的设备上时,它甚至不会显示在小部件列表上,就像安装了一样,但我不能让它正常工作。 下面是manifest.xml 和小部件提供程序

  • 这段代码在模拟器iphone 8 Plus上按预期运行,但当运行到iphone 8 Plus或iphone 6上时,这段控制台日志将失败,导致这种奇怪的结果。Mac和两款iPhone都运行当前的操作系统版本。 urlString为http://museum-dev.williams.edu:3003/id?labid=E8EE71C6F5822

  • 我不太清楚为什么会发生这种情况。我一直在做一些研究,但情况太模糊了,我甚至很难找到解决办法。 我使用Android Studio创建了一个应用程序,并一直在一个虚拟仿真器上运行,其中< code>Toast功能使用这两行简单的代码运行良好 但当我在手机上运行这个应用程序时,它一直死机。我有Galaxy Grand Prime,甚至不确定它是否重要。