創建我NDK的OpenGL ES2應用程序作爲inread在一個教程我加載從Java端共享庫的靜態塊內像在渲染器類負載本地庫內部onSurfaceCreated
static {
System.loadLibrary("game");
}
但這導致錯誤call to opengl es api with no current context
我預料到,從c開始的OpenGL調用發生在創建表面之前,並且openGL上下文變得有效之後,在對google進行了一些研究並試圖無法成功更改c代碼之後,我將加載函數放入onSurfaceCreated
之內,然後錯誤消失。 我的問題是,如果C++庫增加了大小和類,特別是一個有效的過程?如果沒有什麼是正確的解決方案?
這很奇怪,但並非不可能。如果您的C++代碼在加載時開始調用OpenGL,可能會發生,例如使用一些全局變量的構造函數。 –
那麼它是經常加載庫內onSurfaceCreated事件或我應該以另一種方式解決它? – Mohamed
如果您無法訪問本機庫的源代碼,並且它在從onSurfaceCreated加載時工作,並且在其他情況下失敗,那就讓它這樣,希望沒有更糟糕的事情發生在您未測試的設備上。 –