Signo de dólar ($) después del nombre de clase de actividad en registros de Android (clase interna no anónima)

Estoy pasando por algunos registros de bloqueo para mi aplicación y el seguimiento de la pila muestra algo así como:

at MyActivity.formatDouble(MyActivity.java:182) at MyActivity.access$47(MyActivity.java:196) at MyActivity$28.onCameraChange(MyActivity.java:167) 

"MyActivity" es una actividad y por lo tanto no es una clase interna anónima. No puedo estar seguro del signo de dólar en la línea # 3 (y el de la línea # 2 también)

Sospecho que la línea 167 está dentro de una clase anónima dentro de MyActivity y que el access$47 es simplemente un método trampoline para permitir que onCameraChange llame a un método privado dentro de MyActivity . (La JVM no permitiría que, por lo que el compilador de Java crea un método para permitirlo.)

Puedes ver esto fácilmente con una sencilla clase Java, ni siquiera en Android:

 public class Test { private static void privateMethod() { throw new RuntimeException(); } public static void main(String[] args) throws Exception { Runnable runnable = new Runnable() { @Override public void run() { privateMethod(); } }; runnable.run(); } } 

Esto le da un rastro de pila similar al que ha mostrado:

 Exception in thread "main" java.lang.RuntimeException at Test.privateMethod(Test.java:4) at Test.access$000(Test.java:1) at Test$1.run(Test.java:10) at Test.main(Test.java:13) 

El Test$1.run está dentro de una clase interna anónima dentro de main , y el método access$000 acceso está proporcionando acceso a privateMethod .

  • Servicio de fondo de gamepad android
  • Enlace de datos de Android layout_width y layout_height
  • No se pudo leer la fila 0, col -1 de CursorWindow?
  • Android - Causado por: android.view.ViewRootImpl $ CalledFromWrongThreadException
  • Cómo crear una gota de mapa de bits en la actividad de Android?
  • Cómo verificar si existe un valor en HashMap
  • Uso de Quasar Fibers en la aplicación para Android
  • Escanear una carpeta de archivos en android para rutas de archivo
  • Cómo crear un oyente de voleibol adecuado para llamadas de método de volea de clase cruzada
  • Importación de un nuevo tarjet de Apache HttpClient en Android
  • API de la cámara Android2 YUV_420_888 a JPEG
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.