Ich schaffe ich NDK OpenGL ES2 Anwendung als inread in einem Tutorial I die gemeinsam benutzte Bibliothek von Java-Seite innerhalb eines statischen Blockes Ladung wie in der Renderer KlasseLast native Bibliothek innerhalb onSurfaceCreated
static {
System.loadLibrary("game");
}
aber dies einen Fehler verursachen call to opengl es api with no current context
ich erwartete, dass OpenGL Anrufe von c geschieht, bevor die Oberfläche erstellt und der openGL Kontext gültig, nach einigen Recherchen auf google und versucht, den c-Codes ohne Erfolg ich die Ladefunktion setzte sich ändern innerhalb der onSurfaceCreated
dann der Fehler verschwunden. meine Frage ist, dass eine gültige Prozedur speziell, wenn die C++ - Bibliothek in Größe und Klassen erhöht? wenn nein, was ist die richtige lösung?
Es ist seltsam, aber nicht unmöglich. Kann passieren, wenn Ihr C++ - Code OpenGL beim Laden aufruft, z. Verwenden eines Konstruktors einer globalen Variable. –
also ist es normal, die Bibliothek innerhalb onSurfaceCreated Ereignis zu laden oder sollte ich es auf andere Weise beheben? – Mohamed
Wenn Sie keinen Zugriff auf den Quellcode des nativen lib haben und es funktioniert, wenn sie von onSurfaceCreated geladen, und nicht anders, dann lassen Sie es auf diese Weise sein, in der Hoffnung, dass nichts Schlimmeres auf Geräten passieren, dass Sie nicht getestet . –