android.jar在java和android中的不同行为

android.jar在java和android中的不同行为,java,android,Java,Android,类java.io.FileDescriptor中的方法toString()在以下两种情况下具有不同的行为: 当我使用Android.jar在Android项目中编写代码并在 虚拟设备newfiledescriptor.toString()返回 “文件描述符[-1]” 当我在普通Java项目中编写代码,但使用android.jar而不是 jdk库。它返回java.io。FileDescriptor@8e3cf25。这是最重要的 新对象的地址 我已经阅读了FileDescriptor中toStrin

类java.io.FileDescriptor中的方法toString()在以下两种情况下具有不同的行为:

当我使用Android.jar在Android项目中编写代码并在 虚拟设备
newfiledescriptor.toString()返回
“文件描述符[-1]”

当我在普通Java项目中编写代码,但使用android.jar而不是 jdk库。它返回
java.io。FileDescriptor@8e3cf25
。这是最重要的 新对象的地址

我已经阅读了FileDescriptor中toString的实现。 在Android中,它会重写源代码以返回预期结果。但在java中,它没有。
让我困惑的是,为什么在java中替换jar文件后,我仍然无法在Android中获得结果。

Android SDK中的Android.jar文件只包含没有代码的虚拟方法。你指的是哪一个“android.jar”?Robert我在sdk中使用了android.jar,源代码来自sdk/source。你是说sdk中的android.jar和虚拟设备中的android.jar不同吗?当然有区别。SDK中的android.jar只包含API和方法存根。几乎每个方法都包含代码
抛出新的RuntimeException(“Stub!”)@Robert好的,我对android.jar有很大的误解,非常感谢!正如Robert所建议的,android.jar只包含存根。实际的实现只存在于包含制造商提供的jar的android设备上。您可以在安卓设备上设置根目录,取出实际的jar,然后使用JDGUI之类的工具遍历实际的代码。