From that error message, it appears that some bit of native code has called a function that returns a Class object, and has done so 509 times. 507 of those calls returned one particular class.
From that error message, it appears that some bit of native code has called a function that returns a Class object, and has done so 509 times. 507 of those calls returned one particular class. JNI local references let the GC know that native code is looking at an object, and therefore that object can't be collected even if there are no references to it elsewhere.
These local refs are released when the native code returns to the VM. If the native code does a lot of work without returning, it's possible to overflow the local ref table. You probably just need to add a DeleteLocalRef somewhere.My guess is you need to add one at the end of DrawTile, because of the GetObjectClass call.
Better yet, move those GetMethodID calls to a one-time setup function. (They do string searches to find the method, making them not especially quick.) For more info see JNI Tips.
Well, I pulled out the GetMethodID calls, and am instead passing the jmethodId directly to DrawTiles. I also changed my array allocation to GetByteArrayRegion--but I'm still getting the crash. Hm, hm.
– GJTorikian Nov 13 '10 at 0:12 Are you getting the ReferenceTable overflow crash, or just a native crash (with a debuggerd stack dump in logcat)? I was only addressing the ref table overflow (which I describe as a "VM abort" rather than a crash). – fadden Nov 19 '10 at 0:43.
I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.