添加新的API后,构建Android AOSP失败,因为与上一个SDK版本相比,存在新的API.如何解决此问题



我将在Android输入层中添加一个新的API。我在构建aosp时遇到一个错误,因为新的API比以前的SDK版本可用。如何解决此问题?

我已经复制了以下错误:


检查API:checkpublicapi-lastjava-Xmx1024m-classpath/usr/lib/jvm/java-1.7.0-openjdk-amd64/bin//javac:out/host/linux-x86/framework/doclava.jar com.google.doclava.apicheck-hide 2-hide 3-hide 4-hide 5-hide 6-hide 24-hide 25-hide 26-hide 27-错误7-错误8-错误9-错误10-错误11-错误12-错误13-错误14-错误15-错误16-错误17-错误18prebuilts/sdk/api/22.txt out/target/common/obj/Packageing/public_api.txt frameworks/base/api/removed.txt out/targek/common/obj/packageing/removed.txt

Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/javadoc/ClassDoc
        at com.google.doclava.apicheck.ApiFile.parsePackage(ApiFile.java:97)
        at com.google.doclava.apicheck.ApiFile.parseApi(ApiFile.java:76)
        at com.google.doclava.apicheck.ApiCheck.parseApi(ApiCheck.java:144)
        at com.google.doclava.apicheck.ApiCheck.checkApi(ApiCheck.java:112)
        at com.google.doclava.apicheck.ApiCheck.main(ApiCheck.java:67)
Caused by: java.lang.ClassNotFoundException: com.sun.javadoc.ClassDoc
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        ... 5 more

您已尝试从中以前发布的内容更改APISDK。请修复上面列出的错误。


make:***[out/target/common/obj/Packageing/checkpublicapi上次时间戳]错误38


如果不是通过执行make cleanmake -j8来重建整个AOSP,则可能会出现此错误。尝试对AOSP进行干净的构建,因为不进行清理的构建将不会重建任何以前构建的对象和中间体,这些对象和中间体在修改后不必重新构建。

从OpenJDK切换到OracleJava解决了这个问题。

相关内容

最新更新