android - 如何为 Android 设备找到正确的来源?

标签 android

我想查看 android 源代码以了解错误原因。我有 4.4.4 版 的 android 设备,它与 API 19 相同。我下载了 API 级别 19 的源代码(通过 sdk 管理器)并想找到导致错误的代码。
在 logcat 中我有错误:

12-16 16:51:03.790: E/AndroidRuntime(10349): java.lang.NullPointerException
12-16 16:51:03.790: E/AndroidRuntime(10349):    at android.widget.TextView.checkForRelayout(TextView.java:6596)
12-16 16:51:03.790: E/AndroidRuntime(10349):    at android.widget.TextView.onRtlPropertiesChanged(TextView.java:8716)
12-16 16:51:03.790: E/AndroidRuntime(10349):    at android.view.View.resolvePadding(View.java:12538)

但问题是在 TextView 类中第 6596 行是:

} else {

第 8716 行是注释。因此,资源不对应于错误。如何找到正确的来源?

此外,如果 checkin 设备 Build.VERSION.SDK_INT 为 19。 设备 - Sony Xperia 平板电脑

完整的日志 12-16 17:30:43

.401: E/AndroidRuntime(19327): java.lang.NullPointerException
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.widget.TextView.checkForRelayout(TextView.java:6596)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.widget.TextView.onRtlPropertiesChanged(TextView.java:8716)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.view.View.resolvePadding(View.java:12538)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.view.View.resolveRtlPropertiesIfNeeded(View.java:12289)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.view.View.measure(View.java:16639)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at com.cooperok.gui.views.tablefixheader.TableFixHeaders.makeView(TableFixHeaders.java:741)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at com.cooperok.gui.views.tablefixheader.TableFixHeaders.makeAndSetup(TableFixHeaders.java:698)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at com.cooperok.gui.views.tablefixheader.TableFixHeaders.onLayout(TableFixHeaders.java:601)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.view.View.layout(View.java:14965)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.view.ViewGroup.layout(ViewGroup.java:4631)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1671)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1525)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.widget.LinearLayout.onLayout(LinearLayout.java:1434)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.view.View.layout(View.java:14965)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.view.ViewGroup.layout(ViewGroup.java:4631)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.view.View.layout(View.java:14965)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.view.ViewGroup.layout(ViewGroup.java:4631)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.view.View.layout(View.java:14965)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.view.ViewGroup.layout(ViewGroup.java:4631)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1671)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1525)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.widget.LinearLayout.onLayout(LinearLayout.java:1434)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.view.View.layout(View.java:14965)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.view.ViewGroup.layout(ViewGroup.java:4631)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.view.View.layout(View.java:14965)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.view.ViewGroup.layout(ViewGroup.java:4631)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1671)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1525)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.widget.LinearLayout.onLayout(LinearLayout.java:1434)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.view.View.layout(View.java:14965)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.view.ViewGroup.layout(ViewGroup.java:4631)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.view.View.layout(View.java:14965)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.view.ViewGroup.layout(ViewGroup.java:4631)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1987)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1744)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1000)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5622)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.view.Choreographer.doCallbacks(Choreographer.java:574)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.view.Choreographer.doFrame(Choreographer.java:544)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.os.Handler.handleCallback(Handler.java:733)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.os.Handler.dispatchMessage(Handler.java:95)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.os.Looper.loop(Looper.java:212)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at android.app.ActivityThread.main(ActivityThread.java:5135)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at java.lang.reflect.Method.invokeNative(Native Method)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at java.lang.reflect.Method.invoke(Method.java:515)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:878)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
12-16 17:30:43.401: E/AndroidRuntime(19327):    at dalvik.system.NativeStart.main(Native Method)

最佳答案

要找到正确的源行,您应该拥有一台 Google Nexus 设备 - 纯 Android 设备。

制造商会更改其设备的 Android 源。 它会导致 logcat 上的行号错误。

关于android - 如何为 Android 设备找到正确的来源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27507832/

相关文章:

android - 如何暂停在android中捕获视频?

android - 调用一个 Activity 并从堆栈中删除调用 Activity ?

c# - Xamarin android oxyplot 在设备旋转和轴方面存在问题

android - 如何取消和替换 Kotlin Coroutine Call

Android Spinner 跳转到之前选择的位置

android - 在 Android 上运行 Checker 框架

android - 在 Android 中使用 AES/CBC/PKCS5Padding 进行不正确的解密

java - 如果语句没有使图像可见

android - QR 码的定位角

android - 在不解压 zip 的情况下播放 zip 上的 .mp4 文件