0

我正在尝试在应用程序中播放音效。无论我在哪里,都被告知要在 res 目录中添加一个原始文件夹(在 eclipse 中工作)。

首先,我在 res 下添加 raw 文件夹。然后我把我的 .wav 文件放进去。当我尝试在我的代码中使用 R.raw.filename 时,我收到一个错误“无法解析原始文件”。所以我清理并重建了项目。突然,我使用 R.id 或 R.anything 的所有地方都被下划线标记为错误。当我查看错误时,发现它与 Android.R 有关。我所做的一切都无法解决。所以我删除了原始文件夹并重建了项目。突然之间,一切都很好。

我已经重复了这个过程大约 4 次,但我不知道为什么添加原始文件夹会如此痛苦。谁能告诉我我做错了什么?

4

4 回答 4

5

您的任何 .wav 文件的名称中是否包含无效字符?检查是否可能在您的构建中的某处显示以下消息:

未解析的 aapt 错误!检查控制台的输出。

文件名无效:必须仅包含 [a-z0-9_.]

只有小写字符、数字、下划线和句点对名称和扩展名有效。

于 2012-08-15T23:43:32.023 回答
2

使用assets文件夹和...

InputStream sound = getAssets().open("filename.mp3");

...或raw文件夹和...

InputStream sound = getResources().openRawResource(R.raw.filename);

只需确保名为的文件filename存在于名为raw.

如果所有的用法R.*都加了下划线,删除android.R你类的上半部分的导入,正如 Maxim 所提到的。

于 2012-08-15T20:56:31.720 回答
0

显然,您的活动添加了导入 android.R,之后所有与 R 的引用都转到对您的原始文件一无所知的 android 框架(android.jar)。只需检查导入,如果您看到 android.R,请将其删除并添加 com.my_app_namespace.R 之后应该可以工作

于 2012-08-15T20:57:49.277 回答
0

我不确定这是否算作一个解决方案,但是当我使用 .ogg 文件而不是 .wav 文件时,一切正常。

于 2012-08-16T16:17:13.317 回答