我似乎有一个非常奇怪的问题,当应用程序在我的测试手机上运行时它完美运行,并通过按钮按下声音池从原始文件夹播放声音,但是当我在建立后提交我的应用程序进行测试它在120多台设备上因“资源未找到”而崩溃
下面的代码:请注意,该文件实际上在R文件中,在已编译的APK文件中,我也已经多次清理过。
http://www.appthwack.com/public/FUVGFZn42q
'01-03 21:09:36.828 26762 26762 W System.err: java.lang.RuntimeException: Unable to start activity ComponentInfo{appinventor.ai_Broak.PaintballWiz/com.muo.paintballwiz.PaintballWiz}: android.content.res.Resources$NotFoundException: File res/raw/pballshot.ogg from drawable resource ID #0x7f050000 - 1 occurrence'
soundPool = new SoundPool(4, AudioManager.STREAM_MUSIC, 100);
//soundPoolMap = new SparseIntArray();
soundPoolMap = new HashMap<Integer, Integer>();
// soundPoolMap.put(soundID, soundPool.load(this, R.raw.midi_sound, 1));
int myAudioFile = getResId("pballshot", R.raw.class);
soundPoolMap.put(soundID, soundPool.load(PaintballWiz.this, myAudioFile, 1));
audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
curVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
maxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
leftVolume = curVolume / maxVolume;
rightVolume = curVolume / maxVolume;
soundPool.play(soundID, leftVolume, rightVolume, priority, no_loop, normal_playback_rate);
soundPool.play(soundID, 0, 0, 1, -1, 1f);
答案 0 :(得分:0)
我可能错了,但听起来资源不是您自己的文件之一。并且您正在使用手机的资源。我知道你在编译的APK中说明了它,但我认为你应该仔细检查
如果是这种情况,那么您使用的资源是一个,不能保证在Android手机上。某些设备缺少这样的功能。
解决方案是将其复制并将其放入您自己的资源文件夹中,以便将其打包到APK中并分发到安装您应用的任何手机。
如果它已经在你的APK中,但也是手机资源,请确保它正确指向你在APK中的那个,而不是手机的位置。
答案 1 :(得分:0)
您可能想尝试将音频文件放入'assets'文件夹中。然后使用AssetManager访问该文件。