'L' 字母在某些 logcat urls/uri 的开头是什么意思?这是一个错误吗?

What does the 'L' letter mean at the beginning of some logcat urls/uri's? Is it a bug?

在我发布的另一个问题中(我现在已经找到了那个问题的答案),我注意到 logcat.

中提到了 'Landroid'

我原来的问题:

W/dalvikvm﹕ Link of class 'Landroid/support/v4/app/ActivityCompat21$SharedElementCallbackImpl;' failed

在 SO 上搜索后,我注意到其他人也有 logcats 在 URL(URI?)的开头有一个 L,这似乎没有意义。

Unable to resolve superclass of Lnet

W/dalvikvm(7116): Link of class 'Lnet/appcelent/commonlibrary/Lib_MailSender;' failed

android google maps issue

WARN/dalvikvm(498): Link of class 'LShowMap/com/ShowmapActivity;' failed

所以我想知道,字母 L 代表什么,还是 logcat 是如何创建的某个地方的拼写错误?还是我在某个地方犯了一个错误?

我也不明白 logcat 行的意思,所以这对我原来的问题也没有帮助。

它来自 java 字节码,L 是 class 名称的前缀。

http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.3 有关所有可能前缀的更多详细信息。

在内部 Java 将类型名称表示为字符串:(我不知道为什么选择这些规则)

  • IintJlong,其他原始类型有其他单字母名称。
  • 对象类型是 L<classname>;,其中 <classname> 是完整的 class 名称,其中 . 替换为 /
  • 在前面加上 [ 可以得到一个数组(数组的数组可以有多个 [

Lnet/appcelent/commonlibrary/Lib_MailSender;表示classnet.appcelent.commonlibrary.Lib_MailSender。这里唯一的错误是消息显示内部名称而不是 "user-friendly" class 名称。