Merge "Better error logs for faulty ObjectAnimators" into jb-dev
This commit is contained in:
@@ -384,8 +384,7 @@ public class PropertyValuesHolder implements Cloneable {
|
||||
try {
|
||||
returnVal = targetClass.getMethod(methodName, args);
|
||||
} catch (NoSuchMethodException e) {
|
||||
Log.e("PropertyValuesHolder",
|
||||
"Couldn't find no-arg method for property " + mPropertyName + ": " + e);
|
||||
// Swallow the error, log it later
|
||||
}
|
||||
} else {
|
||||
args = new Class[1];
|
||||
@@ -412,9 +411,12 @@ public class PropertyValuesHolder implements Cloneable {
|
||||
}
|
||||
}
|
||||
// If we got here, then no appropriate function was found
|
||||
Log.e("PropertyValuesHolder",
|
||||
"Couldn't find setter/getter for property " + mPropertyName +
|
||||
" with value type "+ mValueType);
|
||||
}
|
||||
|
||||
if (returnVal == null) {
|
||||
Log.w("PropertyValuesHolder", "Method " +
|
||||
getMethodName(prefix, mPropertyName) + "() with type " + mValueType +
|
||||
" not found on target class " + targetClass);
|
||||
}
|
||||
|
||||
return returnVal;
|
||||
@@ -495,7 +497,7 @@ public class PropertyValuesHolder implements Cloneable {
|
||||
}
|
||||
return;
|
||||
} catch (ClassCastException e) {
|
||||
Log.e("PropertyValuesHolder","No such property (" + mProperty.getName() +
|
||||
Log.w("PropertyValuesHolder","No such property (" + mProperty.getName() +
|
||||
") on target object " + target + ". Trying reflection instead");
|
||||
mProperty = null;
|
||||
}
|
||||
@@ -508,6 +510,10 @@ public class PropertyValuesHolder implements Cloneable {
|
||||
if (!kf.hasValue()) {
|
||||
if (mGetter == null) {
|
||||
setupGetter(targetClass);
|
||||
if (mGetter == null) {
|
||||
// Already logged the error - just return to avoid NPE
|
||||
return;
|
||||
}
|
||||
}
|
||||
try {
|
||||
kf.setValue(mGetter.invoke(target));
|
||||
@@ -535,6 +541,10 @@ public class PropertyValuesHolder implements Cloneable {
|
||||
if (mGetter == null) {
|
||||
Class targetClass = target.getClass();
|
||||
setupGetter(targetClass);
|
||||
if (mGetter == null) {
|
||||
// Already logged the error - just return to avoid NPE
|
||||
return;
|
||||
}
|
||||
}
|
||||
kf.setValue(mGetter.invoke(target));
|
||||
} catch (InvocationTargetException e) {
|
||||
@@ -854,8 +864,9 @@ public class PropertyValuesHolder implements Cloneable {
|
||||
}
|
||||
}
|
||||
} catch (NoSuchMethodError e) {
|
||||
Log.d("PropertyValuesHolder",
|
||||
"Can't find native method using JNI, use reflection" + e);
|
||||
// Couldn't find it via JNI - try reflection next. Probably means the method
|
||||
// doesn't exist, or the type is wrong. An error will be logged later if
|
||||
// reflection fails as well.
|
||||
} finally {
|
||||
mPropertyMapLock.writeLock().unlock();
|
||||
}
|
||||
@@ -990,8 +1001,9 @@ public class PropertyValuesHolder implements Cloneable {
|
||||
}
|
||||
}
|
||||
} catch (NoSuchMethodError e) {
|
||||
Log.d("PropertyValuesHolder",
|
||||
"Can't find native method using JNI, use reflection" + e);
|
||||
// Couldn't find it via JNI - try reflection next. Probably means the method
|
||||
// doesn't exist, or the type is wrong. An error will be logged later if
|
||||
// reflection fails as well.
|
||||
} finally {
|
||||
mPropertyMapLock.writeLock().unlock();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user