我正在尝试在应用程序中播放声音效果。无论我到哪里,都被告知要在res目录中添加 raw 文件夹(在eclipse中工作)。
首先,我在res下添加raw文件夹。然后我将我的.wav文件放入其中。当我尝试在我的代码中使用R.raw.filename时,我收到错误“raw无法解析”。所以我清理并重建了这个项目。突然间,我使用R.id或R.anything的每个地方都被强调为错误。当我查找错误时,发现它与Android.R有关。我所做的一切都无法解决。所以我删除了原始文件夹并重建了项目。一下子,一切都很好。
我重复了这个过程大约4次,我不知道为什么添加原始文件夹会很痛苦。谁能告诉我我做错了什么?
答案 0 :(得分:5)
您的.wav文件中是否包含名称中的无效字符?检查构建中某处是否显示以下消息:
Unparsed aapt错误!检查控制台输出。
和
文件名无效:必须仅包含[a-z0-9 _。]
只有小写字母,数字,下划线和句点对名称和扩展名有效。
答案 1 :(得分:2)
使用assets
文件夹和...
InputStream sound = getAssets().open("filename.mp3");
...或raw
文件夹和...
InputStream sound = getResources().openRawResource(R.raw.filename);
只需确保名为filename
的文件中存在名为raw
的文件。
如果R.*
的所有用法都带有下划线,请删除Maxim提到的课程上半部分的导入android.R
。
答案 2 :(得分:0)
显然你的活动添加了导入android.R,之后所有与R的引用都进入了android框架(android.jar),它对你的原始文件一无所知。只需检查导入,如果你看到android.R,删除它并添加com.my_app_namespace.R应该在那之后工作
答案 3 :(得分:0)
我不确定这是否算作解决方案,但是当我使用.ogg文件而不是.wav文件时,一切都运行得很好。