2017-02-15 49 views
-1

在我的項目中,我有一組java對象作爲應用程序模型的一部分,它們都是Java庫模塊,因爲它們都是純Java。 Android應用程序模塊使用它們,這不是問題,我還需要通過我的活動傳遞這些內容,因此使它們成爲Parcelable是一種方法。Android庫中的Java類或Java庫中的Parcelable對象

但是我在Android Studio中遇到了一些麻煩,因爲Parcelable是Android的東西,我沒有成功地在Java模塊中使用它。所以我已經測試過在Android庫中移動我的類,但Android似乎忽略它們,因爲它們是純Java,每個都有一個帶有紅色J的圖標。爲了驗證我的假設,我已經測試了在Android模塊中創建一個Java類,但是沒有辦法做到這一點。

有沒有辦法讓這些類保持在一個單獨的模塊中,如果有,它是什麼?還是應該移動應用程序模塊中的所有類? (我寧願避免可能的話,最後的解決方案)

謝謝

編輯:解決方案似乎使用的是Android庫,但我不知道爲什麼Android的工作室行爲惡劣我模塊,我不能在圖書館的主包中創建Java類和Java包:

Can't create a Java class in pact44.objects

另外,我不能在pact44主包創建包:

Can't create packages in pact44.objects

+0

如果性能是不是一個問題:你有沒有想過使用Java序列化,而不是Android的Parcelable的?詳情請參閱http://www.developerphil.com/parcelable-vs-serializable/ – k3b

+0

是的,確實,對不起... –

回答

0

所以我已經測試移動我的課在Android庫,而Android似乎忽略他們,因爲他們是純Java。

忽略它們?你什麼意思?你創建了一個庫模塊,將你的代碼移入它,然後你不能從你的應用程序模塊訪問這些類?

爲了驗證我的假設,我已經測試在Android模塊中創建一個Java類,但是沒有辦法做到這一點。

而你如何創建活動類,例如?必須有創建一個新的Java類的選項。如果IDE不給你創建一個新的Java類的選項,這意味着你正試圖在一個你不應該這樣做的地方創建它。

如果您想要將庫代碼與應用程序代碼分開,但仍想訪問庫中的Android類,最好的方法是創建一個新的「android庫模塊」。記住庫添加爲依賴於應用的build.gradle

看看這裏:https://developer.android.com/studio/projects/android-library.html

+0

它已經在帖子中,我已經嘗試過,但android studio不建議我創建一個在其中的類... 其實這是真正的問題,我剛剛看到,我有另一個Android庫,我可以在其中創建Java類。我不知道爲什麼Android Studio不會在新模塊中向我推薦它... –

+0

Gradle是否在創建新庫之後同步項目?你是否試圖在src/main/java中創建你的Java類?如果你試圖在這個目錄之外創建一個java類,ide不會給你這個選項。 – Flood2d

+0

_So我已經測試過在Android庫中移動我的類,但Android似乎忽略它們,因爲它們是純Java._:事實上並非如此,對此抱歉。我張貼了兩張顯示問題的圖像。 @ Flood2d我已同步該項目,它不會改變任何東西,儘管謝謝你 –