2015-11-13 26 views
0

我正在使用eclipse作爲IDE,Java和原生C++,在我的Android遊戲中稱爲Flat Out Hockey。 我的問題是與代碼的Java部分。 由於我需要爲FireTV,Google Play和OUYA構建我的遊戲,因此我有不同的方法來處理每個平臺上的遊戲板輸入。 一個問題是,FireTV使用與Google Play和OUYA不同的「項目構建目標」,這是亞馬遜專爲FireTV設計的。針對不同構建的Java代碼或預處理的細微變化?

這意味着我需要使用導入和類,這些導入和類在一個構建目標下可用,但不在另一個構建目標上,並且在爲每個平臺構建時不斷切換它們。

問題是據我所知在Java中沒有預處理器? 所以我不能像在C++中那樣執行#ifdef。 這使得我需要評論/取消註釋或更改值的代碼量超過了它應有的量。

我所做的一個「訣竅」是爲亞馬遜遊戲板類創建一種模擬類,所以我只需更改導入並使用具有相同名稱但功能不同的類。

但還有其他問題,例如只能在Android OS 5上使用的Immersive屬性。 以及其他內容。

所以也許我錯過了Java中的某些功能,但我真的很想在一個地方設置一個值來在不同的版本之間切換。

在Java/eclipse中是否有類似的東西?

+0

在Android Studio中,您可以定義您的版本的版本,您可以在其中放置特定的代碼。通常這用於開發/發佈版本,但它可以用於各種各樣的東西,包括那些。 – njzk2

回答

1

一種方法是將項目拆分爲幾個組件:一個「核心」模塊,它根據通用接口(它定義的)定義主要實現,然後爲每個目標聲明這些接口的實現。例如,你的核心模塊可以定義一個GamePad接口,然後你的FireAdapter模塊將依賴核心和Fire的API來創建一個FireGamePad(它實現了GamePad)。

然後,每個模塊都變成了自己的構建版本,並擁有自己的可交付成果。

+0

我如何爲eclipse中的每個構建版本創建不同的AndroidManifest? 或者換句話說,我將如何更改版本並在一個地方爲所有3版本構建編號? – user1097185

+0

對於AndroidManifest或Eclipse,我不是很熟悉,對不起。 – yshavit

相關問題