VirtualBoxにAndroid x86 4.0をインストールし、OpenGLアプリを動作させようとしています。VirtualBoxの設定で「3Dアクセラレーション」を有効にしましたが、アプリを開くとすぐにクラッシュしてログに記録されます。
java.lang.IllegalArgumentException: No configs match configSpec
0xbenchmark 3D テストを試しました (0xbenchmark は Android-x86 に付属するテスト アプリです)。完璧に動作しました。編集:他の OpenGL アプリは動作しないようなので、なぜそうなるのかはわかりません。おそらく Android-x86 は実際には GLES 2.0 をサポートしていないのでしょう。
すべての OpenGL アプリを VirtualBox で動作させるにはどうすればよいですか?
編集:以前スタック トレースを追加するのを忘れたので、ここに追加します (logcat から):
E/AndroidRuntime( 1681): FATAL EXCEPTION: GLThread 146
E/AndroidRuntime( 1681): java.lang.IllegalArgumentException: No configs match configSpec
E/AndroidRuntime( 1681): at android.opengl.GLSurfaceView$BaseConfigChooser.chooseConfig(GLSurfaceView.java:863)
E/AndroidRuntime( 1681): at android.opengl.GLSurfaceView$EglHelper.start(GLSurfaceView.java:1024)
E/AndroidRuntime( 1681): at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1401)
E/AndroidRuntime( 1681): at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1240)
答え1
徹底的に検索してテストした結果、解決策を見つけました。問題は、VirtualBox の仮想グラフィック ドライバーが実際には OpenGL を完全にサポートしていないことです。必要なのは、コンピューターの GPU を Android の仮想環境に渡すことができるものです。まさにそれができるものを見つけました。アンドロVMこのバージョンの Android には、VirtualBox でシームレスに動作するようにカスタム作成されたドライバーがあり、ホストの物理 GPU を使用して GLES をエミュレートする独自のプレーヤーが付属しています。AndroVM とそのプレーヤーを使用して、すべての OpenGL アプリを正常に実行できました。