En las últimas versiones de Android Studio, el IDE muestra un error en getClass que dice lo siguiente:
Ambiguous method call. Both
getClass () in Object and
getClass () in Object match.
Se debe a un bug de la plataforma IntelliJ.
La opción rápida sería haciendo un Casting de la llamada getClass():
((Object) this).getClass()
Sin embargo, no nos gustaba mucho esta opción ya que complica la lectura y además tendríamos que cambiar todo el código para evitar el error. Hay una solución mejor. Se trata de parchear el código SDK
Cuando te encuentres con el error getClass(), ve a la declaración del método (⌘B en Mac). Esto te llevará directamente a la ruta, algo así como $ANDROID_HOME/sources/android-20/java/lang/Object.java. Ahora , desde IntelliJ o desde Android Studio:
- Haz Object.java editable seleccionando File -> Make File Writable. Es posible que te pida hacer esto si intentas modificar automáticamente el archivo.
- Retire el comodín de la función:
Depublic final native Class<?> getClass();
a
public final native Class getClass();
En las últimas versiones de android studio no te dejará modificar el código, puedes utilizar tu editor favorito para modificarlo.
Actualización
Si actualizas Android Studio, tendrás que volverlo a hacer, en mi caso tuve que volver a editar el archivo y guardar:
$ vi /Applications/Android\ Studio.app/sdk/sources/android-20/java/lang/Object.java :wq