2014-11-07 73 views
1

我写了一个小测试应用程序,通过NDK在Android上使用SDL2。它编译并运行。但是,只要我尝试打开文件,就会得到FileNotFound异常。我在我的eclipse workdir中添加了资产目录并将文件放入其中。当我将项目导出到.apk文件时,我可以在7z中打开该文件,并看到有一个资产目录中包含这些文件。但是,当代码执行并尝试打开assets/somefile.txt时,我得到一个FileNotFound异常。我如何打开我包含在apk中的文件?

谷歌到目前为止告诉我,我可以把一个SD卡放在我的设备上,并且通过/ sdcard /访问它。我想将这些文件包含在我的apk中。

如何访问我放入资产的文件?或者我应该在哪里放这些文件,我应该如何调整我的路径,它可以在运行时访问它们?

+1

它不是一个MVP的副本建议作为问题涉及Java/SDK和我的C(++)/ NDK。 – marc40000 2014-11-07 01:31:25

+0

确实不是,但它是NDK问题的重复。基本上,apk内容不是文件系统文件,所以你的选择基本上是使用assets api或者自己解析.apk zip结构。 – 2014-11-07 02:44:36

回答

-1

将在您的主要活动任何事情之前这段代码 - >

if (Environment.getExternalStorageState(). equals (Environment.MEDIA_MOUNTED)) { 
File directory = new File (Environment.getExternalStorageDirectory() + + File.separator "YourFolderName"); 
directory.mkdirs(); 

    } 

给这个权限的清单XML - >

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

这到底是什么?它是否将apk文件提取到外部存储? – marc40000 2014-11-07 01:32:29

+0

这是第一步。使您可以创建目录,以便用户在设备上安排应用程序。现在,您将文件放入sdcard/yourfolder。你必须解释什么样的表现会让你的应用程序。你想如何打开这个文件。例如,为了打开图像,需要图像视图文本视图并打开TXT文本。 – Kamuy 2014-11-07 02:11:04

+0

这不回答问题。 – 2014-11-07 02:46:52