我用Android Studio製作了一個API包裝器,主要用於Android應用程序。我想從中創建一個.JAR文件,以便Java應用程序也可以使用它。Android Java庫雙向兼容
這可能嗎?如果是這樣,怎麼樣?
我已經看過如何使.JAR文件脫離Android Pojects,但沒有太多出來。例如,我也不明白Java應用程序如何處理Android網絡導入。
我用Android Studio製作了一個API包裝器,主要用於Android應用程序。我想從中創建一個.JAR文件,以便Java應用程序也可以使用它。Android Java庫雙向兼容
這可能嗎?如果是這樣,怎麼樣?
我已經看過如何使.JAR文件脫離Android Pojects,但沒有太多出來。例如,我也不明白Java應用程序如何處理Android網絡導入。
,你可以添加一個「罐子」任務到庫-S build.gradle
產生這樣的罐子:
apply plugin: 'android-library'
android {
...
}
task jar(type: Jar) {
from android.sourceSets.main.java
}
dependencies {
...
}
你必須記住,普通的非Android的Java應用程序不能直接使用類或inderectly取決於命名空間android.*
我希望創建一個普通的非Android的依賴於Android的工作室的Java庫子項目生成一個JAR文件,並且可以通過你的Android的應用程序消耗。
從android-app中分離non-android-lib的另一個好處是你可以爲它們編寫junit-4測試。
普通的android-junit測試依賴於junit3。執行android-junit-tests需要啓動耗時的模擬器/ android-device。
一個普通的非Android系統的JUnit測試運行得更快,因爲它不需要仿真器/ Android的設備
我同意lib應該是非android,但我現在使用android.net.Uri。我將如何替換我的非Android庫? Android以後會如何理解它?將http://docs.oracle.com/javase/7/docs/api/java/net/URI.html和https://docs.oracle.com/javaee/6/api/javax/ws/rs/core /UriBuilder.html工作? – Rauter
你不能在非android應用中使用'android.net.Uri',所以你必須使用'String' +'java.net.URI' +'java.net.URLDecoder' +'java.net來實現所有的uri操作。 URLEncoder'也可以在android中使用。我通過傳遞uri-strings來解決類似的問題。 – k3b
是的,這很明顯android導入不起作用。感謝您分享您的解決方案,但是,那是我以後的:) – Rauter
*我也不明白是Java應用程序會如何處理Android的淨進口,爲例如。* ...與不錯的** NoClassDefFoundError ** – Selvin