- defaultValue was not being passed into the JNI CallStaticDoubleMethod
method previously.
- CCUserDefault::getDoubleForKey() would return undefined garbage when
the key doesn’t exist.
Test Case:
Call the following from anywhere in your code (in release
configuration). X will be garbage.
Call the following from your code:
double x =
CCUserDefault::sharedUserDefault()->getDoubleForKey("Some-Non-existant-k
ey-1234", 0);
CCLOG("x = %4.2f", x);
Fix Tested on Android. Affects Android only.
When calling GetMethodID a NoSuchMethodError will be raised if the method cannot be found.
See http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/functions.html#wp16660
This exception should be cleared if JNI execution is to be continued.
Currently JniHelper informs that the method is not found, but there is no way to continue execution without manually clearing the exception. This prevents checking for the existence of a method and recovering from it being missing.
This fix will clear the exception if JniHelper fails to find the method.