java - 在 libcore/luni/src/main/java/java/net)? [Not a ] 中,如何從 InetAddress.java ( 或者任何文件) 導入 android.util.Log

  显示原文与译文双语对照的内容
146 0

我不能直接使用下列語句之一


import android.util.Log; 



或者


import android.os.Environment;



從 InetAddress.java 到 libcore/luni/src/main/java/java/net,,我也不能使用任何依賴它的文件。 我使用的組成員創建了一個依賴於 android.os.Environment的類,並在AOSP中成功地使用了它,比如 packages/apps/PackageInstaller/src/com/android/packageinstaller/PackageInstallerActivity.java 。

我們並沒有為完成他創建的類而確定alternative方法,但為了一致性,我寧願在中使用他的代碼,如果有可能的話。

我收到的錯誤消息是


Error: no package named android.os


Error: no package named android.util 



搜索到這些資源后,我發現了 ,它建議刪除這些行,以便能夠從標準庫中導入這些行

按照這個建議,我搜索最接近 InetAddress.java的父目錄,它有一個 android.mk 文件,嘗試編輯它,看到它沒有行,看到了 LOCAL_NO_STANDARD_LIBRARY = true; 但它確實調用了那些行。 在註釋並重新生成后,運行后輸出中出現以下行:


make: Circular out/target/common/obj/JAVA_LIBRARIES/framework-base_intermediates/classes-full-debug.jar <- out/target/common/obj/JAVA_LIBRARIES/bouncycastle_intermediates/classes.jar dependency dropped.


make: Circular out/target/common/obj/JAVA_LIBRARIES/framework-base_intermediates/classes-full-debug.jar <- out/target/common/obj/JAVA_LIBRARIES/conscrypt_intermediates/classes.jar dependency dropped.


make: Circular out/target/common/obj/JAVA_LIBRARIES/framework-base_intermediates/classes-full-debug.jar <- out/target/common/obj/JAVA_LIBRARIES/core_intermediates/classes.jar dependency dropped.


make: Circular out/target/common/obj/JAVA_LIBRARIES/okhttp_intermediates/classes-full-debug.jar <- out/target/common/obj/JAVA_LIBRARIES/conscrypt_intermediates/classes.jar dependency dropped.


make: Circular out/target/common/obj/JAVA_LIBRARIES/okhttp_intermediates/classes-full-debug.jar <- out/target/common/obj/JAVA_LIBRARIES/core_intermediates/classes.jar dependency dropped.


make: *** [out/target/common/obj/JAVA_LIBRARIES/core-junit_intermediates/classes-full-debug.jar] Error 41


make: *** Waiting for unfinished jobs....


Fatal Error: Unable to find package java.lang in classpath or bootclasspath


make: *** [out/target/common/obj/JAVA_LIBRARIES/okhttp_intermediates/classes-full-debug.jar] Error 41


Fatal Error: Unable to find package java.lang in classpath or bootclasspath


make: *** [out/target/common/obj/JAVA_LIBRARIES/ext_intermediates/classes-full-debug.jar] Error 41



如果需要,我可以發布完整的輸出,但這些行是構建過程正常輸出的唯一行。

在第一個地方提供使用 android.os的解答或者評論當然很感謝,但是我希望在所有可以能的情況下使用。

时间: 原作者:

117 3

問題是生成文件工作不正常。 對於你正在嘗試的。

這些錯誤:


Error: no package named android.os


Error: no package named android.util 



。意味著編譯器編譯 InetAddress.java 時,這些軟體包不在類路徑上。 在設計時,我懷疑這是的;為了避免或者減少java子集包與android特定包之間的循環依賴,。 看起來你正在試圖對構建的InetAddress 進行更改或者注入更改;換句話說,在模塊之間創建循環依賴,這些模塊在有序/偏序順序中創建。

然後是:


Fatal Error: Unable to find package java.lang in classpath 


 or bootclasspath



說你把事情worse了。 但是它指向相同的一般方向- compile編譯時類路徑問題。

如何修復它?

說實話,我不知道它是否能修復。 但是如果可以能的話,可以能需要對android模塊化及它的生成器進行重要的改進。

注:這不是關於導入在語言級別的工作方式的問題。 所有這些都是關於編譯器在哪裡尋找導入的類( 例如 。 javac 命令行 選項告訴它 look look,以及這些類是否已經編譯過了。

原作者:
...