$symbol在Android中表示什么

$symbol在Android中表示什么,android,proguard,Android,Proguard,我有一个异常,我的classname$a.a()方法是在空对象引用上调用的。我不明白$symbol是什么意思。我使用Proguard进行映射,但文件被覆盖,现在我的firebase崩溃日志显示此异常消息 Caused by java.lang.NullPointerException: Attempt to invoke interface method 'void com.package.TestClass$a.a()' on a null object reference com.packa

我有一个异常,我的classname$a.a()方法是在空对象引用上调用的。我不明白$symbol是什么意思。我使用Proguard进行映射,但文件被覆盖,现在我的firebase崩溃日志显示此异常消息

Caused by java.lang.NullPointerException: Attempt to invoke interface method 'void com.package.TestClass$a.a()' on a null object reference
com.package.TestClass.h ()
com.package.TestClass.a ()
com.package.TestClass.onStartCommand ()
android.app.ActivityThread.handleServiceArgs (ActivityThread.java:3347)
android.app.ActivityThread.-wrap21 (ActivityThread.java)
android.app.ActivityThread$H.handleMessage (ActivityThread.java:1595)
android.os.Handler.dispatchMessage (Handler.java:102)
android.os.Looper.loop (Looper.java:154)
android.app.ActivityThread.main (ActivityThread.java:6165)
java.lang.reflect.Method.invoke (Method.java)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:888)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:778)

$是一个分隔符,指示存在嵌套类。
您可以在此阅读更多信息。

您可能想查看这个答案,它很好地解释了这一点


注意:由于声誉<50,无法发表评论。

您在TestClass中定义了一个内部接口$符号表示内部类或接口。。根据崩溃日志,它的任何接口都是用任何方法在TestClass中创建的。。有人试图用null object调用TestClass中定义的内部接口的方法。您可能忘记注册此接口,您的接口需要实现,或者应该匿名初始化和传递。。您的TestClass看起来像一个服务类