簡體   English   中英

Android:使用舊版應用程式做為圖書館專案

[英]Android: Using an old app as a library project

我正在嘗試將舊應用程序用作新應用程序的庫項目。 但是,將它們同時安裝在設備上時會出現一些問題,我不確定發布后是否存在。

假設我的舊應用是A,新應用是B。

如果我只安裝A,A可以正常工作。

然后,當我安裝B(將A用作庫項目)(將項目A標記為“ isLibrary”之后)時,原始的A停止在設備上工作,但是B可以正常工作。

但是,如果我先安裝B,然后再安裝A,兩者都可以。

看來,當A作為另一個應用程序的“庫項目”被包含並在原始“ A”之后安裝時,原始的“ A”就會以某種方式失效! (但問題並不存在)

發布后此問題會消失,還是必須同時為A和B創建一個庫項目C,這樣可以防止這種情況? 還是在上述情況下根本就不存在這個問題(意味着我完全在做其他錯誤)?

我之所以沒有創建庫項目C的原因是因為涉及到所有的重構,而在我的案例中Eclipse並沒有很好地重命名所有內容。

查看官方開發者指南“ 管理項目-圖書館項目”

但是,庫項目與標准Android應用程序項目的不同之處在於,您無法將其直接編譯為自己的.apk並在Android設備上運行。 同樣,您不能像真正的庫那樣將庫項目導出到獨立的JAR文件中。 相反,必須通過在從屬應用程序中引用該庫並構建該應用程序來間接編譯該庫。


回到您的問題:

如果我只安裝A,A可以正常工作。

由於A是一個應用程序項目(未選中isLibrary設置),因此A.apk得以編譯,安裝和運行。

然后,當我安裝B(將A用作庫項目)(將項目A標記為“ isLibrary”之后)時,原始的A停止在設備上工作,但是B可以正常工作。

現在將A更改為Library Project(將isLibrary設置選中),此時不再有A.apk,只有B.apk(在構建B.apk時已編譯並合並)才被編譯,安裝和工作。

但是,如果我先安裝B,然后再安裝A,兩者都可以。

如果A是一個庫項目,則類似Eclipse的IDE不允許您直接在Emulator或真實設備上編譯,安裝和運行它。 我想您然后將A更改回應用程序項目(未選中isLibrary設置),因此A.apk再次被編譯,安裝和工作。

看來,當A作為另一個應用程序的“庫項目”被包含並在原始“ A”之后安裝時,原始的“ A”就會以某種方式失效! (但問題並不存在)

基本上正確,請查看官方開發指南以獲取詳細信息。

發布后此問題會消失,還是必須同時為A和B創建一個庫項目C,這樣可以防止這種情況? 還是在上述情況下根本就不存在這個問題(意味着我完全在做其他錯誤)?

否,是,如果要將項目A和B都設為應用程序項目,則需要庫項目C(以便可以在仿真器或真實設備上編譯,安裝和運行它們)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM