2014-10-19 53 views
0

我想在Android Studio中編譯Java模塊。 我也在模塊中引用android.jar。所以,是的,模塊應該是Java,但使用android.jar作爲編譯參考。 這個android.jar的版本SDK是不相關的(我想,但它是19)。 (你可能會問爲什麼如果我需要android.jar,我不使用Android模塊而不是Java ?,它是重構我們的Android項目的中間步驟)。在Android Studio中引用Java模塊

我現在面臨的問題: enter image description here

錯誤:無法找到符號變量SDK_INT

apply plugin: 'java' 
dependencies { 
    compile project(':ATTLogger') 
    compile project(':BandwidthController') 
    compile project(':iwpstack') 
    compile files('libs/android.jar') 
} 

你看 - 它並不想認識一些...代碼清晰地呈現在Android。罐。 是的,它看到導入android.os.Build;並沒有抱怨。

這裏是我的bukd.gradle:

如果你碰巧解決這個滋擾我已經浪費半天時間。請幫助。 謝謝!

+1

您在該項目中是否有任何對Android API的調用? – helleye 2014-10-19 13:54:52

+0

當然,特別是它喊:Build.VERSION.SDK_INT> = Build.VERSION_CODES.ICE_CREAM_SANDWICH – 2014-10-19 13:59:26

+0

我對你是否在做某件有意義的事情持懷疑態度,但無論如何,我能夠創建一個普通的Java模塊,並訪問其中的「構建」常量,所以它在某些情況下有效。你需要在你的問題中添加更多的細節才能得到一個好的答案。 – 2014-10-20 17:31:50

回答

0

如果它是一個只有Java的代碼(沒有任何對Android API的調用),那麼你可以使它成爲一個JAR,而不必爲android.jar添加依賴。否則,如果你有Android API的調用,你應該使它成爲AAR模塊。 From http://developer.android.com/sdk/installing/studio-build.html#projectModules

  • Java庫模塊包含可重用代碼。構建系統爲Java庫模塊生成JAR包。
  • Android庫模塊包含可重複使用的Android特定代碼和資源。構建系統爲庫模塊生成AAR(Android ARchive)包。
  • Android應用程序模塊包含應用程序代碼,可能依賴於庫模塊,儘管許多Android應用程序僅包含一個應用程序模塊。構建系統爲應用程序模塊生成APK包。

因此,要解決您的問題,您應該跳過此「中間步驟」,並立即使其成爲Android模塊。

+0

謝謝。但爲什麼android.jar與我編譯的其他jar不同? – 2014-10-19 14:57:08

+0

我不知道,但我的猜測是,有一個模塊Android以上的android.jar。 – helleye 2014-10-20 06:29:53