Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java AndroidStudio/gradle-如何加载Dalvik类而不是标准JDK类_Java_Android_Android Studio_Classloader_Android Gradle Plugin - Fatal编程技术网

Java AndroidStudio/gradle-如何加载Dalvik类而不是标准JDK类

Java AndroidStudio/gradle-如何加载Dalvik类而不是标准JDK类,java,android,android-studio,classloader,android-gradle-plugin,Java,Android,Android Studio,Classloader,Android Gradle Plugin,我在android中摆弄HTTPS,我不得不处理java.net.InetAddress。在这样做的过程中,我发现dalvik的InetAddress类有一个名为isNumeric(host)的静态方法,它不在java8 InetAddress类中。作为说明,官方文件没有显示它,所以我想我甚至不应该使用它 那么,假设我想在我的android代码中使用InetAddress.isNumeric,如何让AndroidStudio/gradle加载Dalvik类而不是JDK类并避免编译错误?正如Com

我在android中摆弄HTTPS,我不得不处理java.net.InetAddress。在这样做的过程中,我发现dalvik的InetAddress类有一个名为isNumeric(host)的静态方法,它不在java8 InetAddress类中。作为说明,官方文件没有显示它,所以我想我甚至不应该使用它


那么,假设我想在我的android代码中使用InetAddress.isNumeric,如何让AndroidStudio/gradle加载Dalvik类而不是JDK类并避免编译错误?

正如CommonWare所指出的,isNumeric方法通过@hide javadoc注释隐藏,因此编译器不可见。
有几种方法可以调用该方法,但您不应该:)。

Android Studio和Gradle不“加载Dalvik类”或“JDK类”。Android构建过程使用基于特定构建SDK的
Android.jar
文件(例如,
build.gradle
中的
compileSdkVersion
。感谢您的评论,但我的意思是:如何确保gradle从Dalvik而不是JDK加载java.net.InetAddress?据我所知,java类加载程序加载在路径右侧找到的类的第一个版本?“如何确保gradle从Dalvik而不是JDK加载java.net.InetAddress?"--正如我在评论中指出的那样,Gradle不使用这两种方法。由于Gradle加载android.jar,并且InetAddress同时出现在android.jar和rt.jar中,jvm将首先加载哪一种方法?正如我已经指出的,Gradle for android将根据与构建SDK关联的
android.jar
进行编译。Gradle for android不使用任何
rt、 jar
用于Android编译过程。您尝试使用的方法用
@hide
注释标记,因此它不存在于开发机器上的
Android.jar
副本中。