无法在Android Studio的logcat中检测行号

6

Android Studio 2.2.3

Android Studio无法检测logcat中的行号。有没有办法解决这个问题?它显示Unknown Source代替行号。

LOGCAT仅是为了指出问题所在,而不是去寻找为空指针异常产生的原因...

请忽略错误(我知道发生了什么)。我添加了日志以显示问题所在。

Android studio显示未知来源而非错误行号。

Logcat:

E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: user.com.hlthee, PID: 1107
                  java.lang.NullPointerException
                      at user.com.hlthee.Reminders$13.onClick(**Unknown Source**)
                      at android.support.v7.app.AlertController$ButtonHandler.handleMessage(Unknown Source)
                      at android.os.Handler.dispatchMessage(Handler.java:102)
                      at android.os.Looper.loop(Looper.java:136)
                      at android.app.ActivityThread.main(ActivityThread.java:5001)
                      at java.lang.reflect.Method.invokeNative(Native Method)
                      at java.lang.reflect.Method.invoke(Method.java:515)
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
                      at dalvik.system.NativeStart.main(Native Method)

你的问题还存在吗? - Charuක
我没有得到答案,所以需要格式化 Android Studio。现在没有问题了。仍然想知道为什么出现这个问题?@Charuka - Ankur Khandelwal
现在又开始了同样的问题@Charuka - Ankur Khandelwal
你的命名规范是什么?你是否使用依赖项来处理按钮效果? - Charuක
我不明白你说的 @Charuka 命名规则是什么意思? - Ankur Khandelwal
显示剩余7条评论
2个回答

4
如果这是你的类(不是库),那么在与该类相连的XML中,你可能会缺少一个视图。它会显示 NullPointerException - onClick(**Unknown Source)**,这意味着在你的类中,你可能为该视图使用了onclick函数,但该视图不在XML中。找到你在类中添加了哪些onClick,并查看哪个没有出现在你连接的XML中。 编辑: 如果你的包名和清单文件中的包标签没有正确的命名规范,就会出现未知来源的问题,如下所示。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="string"
          android:sharedUserId="string"
          android:sharedUserLabel="string resource" 
          android:versionCode="integer"
          android:versionName="string"
          android:installLocation=["auto" | "internalOnly" | "preferExternal"] >
    . . .
</manifest> 

因此,您还可以仔细检查您的活动标记并遵循命名约定。您可能会有一个名称类似于这样的名称...Reminders$13

enter image description here

Android应用程序的完整Java语言样式的包名称。该名称应该是唯一的。名称可以包含大写字母或小写字母('A'到'Z'),数字和下划线('_')。然而,单个包名称部分只能以字母开头。为了避免与其他开发人员发生冲突,您应该使用互联网域所有权作为您的包名称(反向)。例如,由Google发布的应用程序以com.google开头。在发布应用程序时,您也永远不应使用com.example命名空间。

来自developer.android.com


嘿,我觉得你误解了我的问题......我的问题是......我知道错误出在哪里,但为什么它不指向(或显示)错误所在的行号呢... - Ankur Khandelwal
由于无法链接它们,编译器忽略了它们。可能您的XML中有与另一个XML相同的ID,因此编译器无法完成工作。当运行时尝试查找并返回视图时,在该XML中没有任何内容,这会导致混淆并显示为未知来源。但是,提示会指出可能发生这种情况的位置:"user.com.hlthee.Reminders$13.onClick"。 - Charuක
@Ankur Khandelwal,你在问题中没有提到“我知道错误在哪里”。 - Charuක
抱歉,由于误解,现在我已经在问题中写明了@Charuka。 - Ankur Khandelwal
我并不是在问为什么出现了空指针异常,我是在说无论出现什么错误,Android Studio 都没有告诉我错误出现在哪一行。 - Ankur Khandelwal

2

如果你看到未知来源的情况,可能是因为你的设备连接已经断开或应用程序的主线程已被终止。 如果你能提供屏幕截图将更加清晰。


1
如果您将答案作为评论添加,那么更清晰。 - Charuක
我已添加了logcat.. @kalpit - Ankur Khandelwal
我可以在你的logcat中看到这一行:at user.com.hlthee.Reminders$13.onClick(**Unknown Source**),其中$13是行号吧。 检查一下你在onClick中传递了什么,它应该是view类或其子类。 - Kalpit Champanery
$13 不是行号。 - Ankur Khandelwal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接