1

私は非常に奇妙な問題を抱えているようです。アプリをテスト電話で実行すると完全に動作し、ボタンを押すとサウンドプールを介して生のフォルダーからサウンドが再生されますが、ビルド後にアプリをテストに送信するとクラッシュします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);
4

2 に答える 2

0

私は間違っているかもしれませんが、リソースはあなた自身のファイルの 1 つではないようです。電話のリソースを使用していること。コンパイルされた APK に記載されていることは知っていますが、再確認する必要があると思います

この場合、使用しているリソースは 1 つであり、Android フォン上にあるとは限りません。また、一部のデバイスでは欠落しています。

解決策は、それをコピーして独自のリソース フォルダーに配置することです。これにより、APK にパッケージ化され、アプリをインストールするすべての電話に配布されます。

すでに APK に含まれているが電話リソースでもある場合は、電話の場所ではなく、APK にあるものを正しく指していることを確認してください。

于 2012-11-17T23:12:04.763 に答える
0

オーディオ ファイルを「assets」フォルダに入れてみることをお勧めします。次に、AssetManager を使用してファイルにアクセスします。

于 2012-11-17T23:16:51.853 に答える