2017-09-01 69 views
0

我是Android SDK新手。我使用Emacs作爲IDE(我瞭解Android Studio)。我創建了一個項目,並從一個名爲gradlew的腳本編譯它(它是在創建項目時自動創建的)。 APK已成功創建。現在,我試圖實現(使用FlyMake)語法錯誤檢查器。用於執行此命令如下:Android SDK找不到一些.java源代碼

javac "main.java"

main.java其中是主應用程序的(僅存在一個文件)。

很明顯,javac不知道SDK(API級別20)在哪裏。所以我告訴它如下:

javac -sourcepath "~/opt/android/sources/android-20" "main.java"

但它會引發很多錯誤,如「找不到類」。例如:

/home/carlos/opt/android/sources/android-20/android/app/Activity.java:29: error: cannot find symbol

import android.content.IIntentSender;

   ^

symbol: class IIntentSender location: package android.content

當我看到android/content的內容,沒有一個名爲IIntentSender

那麼,發生了什麼事的.java?感謝您的閱讀和回答!

+0

上次我手工使用'javac'時,我使用'-classpath',而不是'-sourcepath'。假設'〜/ opt/android /'是你的Android SDK的安裝目錄,'-classpath'的適當JAR應該是'〜/ opt/android/platforms/android-20/android.jar'。 'IIntentSender'是生成的Java源代碼(來自AIDL),並且在SDK'sources'目錄中不會以Java形式存在。所以,如果FlyMake需要'-sourcepath',我預計你將會處於一個受到傷害的世界。 – CommonsWare

+0

Jaja ok。我會記住 –

回答

1

這個問題被回答了CommonsWare

The last time I used javac by hand, I used -classpath, not -sourcepath. The appropriate JAR for -classpath would be ~/opt/android/platforms/android-20/android.jar, assuming that ~/opt/android/ is where your Android SDK is installed. IIntentSender is generated Java source code (from AIDL) and will not be in Java form in the SDK sources directory. So, if FlyMake requires -sourcepath, I expect that you're going to be in a world of hurt.

謝謝!