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

时间:2015-07-24 12:15:24

标签: java android logcat dalvik

在我发布的另一个问题中(我现在想出了这个问题的答案),我注意到在logcat中提到了“Landroid”。

我原来的问题: Android app starts slow, but works fine after that slow start

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

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

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行是什么意思,所以这对我原来的问题也没有帮助。

2 个答案:

答案 0 :(得分:9)

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

  • IintJlong,其他原始类型为其他单字母名称。
  • 对象类型为L<classname>;,其中<classname>为完整的班级名称,.替换为/
  • 在前面粘贴[会获得一个数组(对于数组数组可以有多个[

Lnet/appcelent/commonlibrary/Lib_MailSender;表示班级net.appcelent.commonlibrary.Lib_MailSender。这里唯一的错误是消息显示内部名称而不是“用户友好”类名。

答案 1 :(得分:2)

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

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