内部のネイティブライブラリ私はチュートリアルでinreadとしてI NDKのOpenGL ES2アプリケーションを作成し、私はレンダラクラスのような静的ブロック内のJava側から共有ライブラリをロードロードonSurfaceCreated
static {
System.loadLibrary("game");
}
が、これは誤りcall to opengl es api with no current context
を引き起こします私は、OpenGLの呼び出しは、表面が作成され、OpenGLのコンテキストが有効になる前に、Googleでいくつかの研究を行って、成功しなかったCコードを変更しようとすると、onSurfaceCreated
のエラーが消えてから有効になることを期待しています。 私の質問は、特にC++ライブラリのサイズとクラスが増えた場合に有効な手続きですか?正しい解決策が何もない場合は?
これは奇妙ですが不可能ではありません。あなたのC++コードがロード時にOpenGLを呼び出し始めると起こります。いくつかのグローバル変数のコンストラクタを使用します。 –
ライブラリをonSurfaceCreatedイベント内にロードするのは定期的ですか、別の方法で修正する必要がありますか? – Mohamed
ネイティブlibのソースコードにアクセスできない場合に、onSurfaceCreatedからロードされたときに動作し、それ以外の場合は失敗した場合は、テストしなかったデバイスで悪化することはない。 –