2012-07-15 95 views
1

因此前幾天我接觸了Arduino Mega ADK板,最近幾個晚上我一直在設置自己的開發環境,掌握工具等。工具和庫都可以正常工作,例如我可以在Processing IDE中編寫一個程序,在運行Android 4.03的華碩Eee Pad Transformer TF101上進行編譯和運行。但是,當我得到它的嘗試編譯和運行的預先編寫的例子之一,它給了我一個編譯器錯誤:在使用Android ADK與Arduino Mega ADK進行通信時使用build.xml的問題

Android SDK工具修訂20 在安裝在C:\ NVPACK \ Android的SDK窗口 項目類型:Application 項目目標:安卓2.3.3 API等級:10間 庫的依賴關係: 沒有圖書館


API < = 15:添加annotations.jar到classpath中。 將AndroidManifest文件合併爲一個。 禁止清單合併。僅使用項目清單。 沒有要編譯的AIDL文件。 沒有RenderScript文件進行編譯。生成資源ID ... 生成BuildConfig類。

構建失敗 C:\ NVPACK \ Android的SDK-WINDOWS \工具\螞蟻\的build.xml:680: C:\ NVPACK \ Android的SDK-WINDOWS \工具在執行這條線出現以下錯誤\ ant \ build.xml:693:編譯失敗;詳細信息請參閱編譯器錯誤輸出。

總時間:7秒

而這一切,控制檯似乎輸出爲好,這是相當令人沮喪,!據我所知我所有的SDK版本,工具和插件都是最新的。我已經嘗試過使用我的硬盤上的Linux分區,並且它產生相同的錯誤消息,雖然它提到了com.Android.future.UsbAccessory包的問題。根據我所看到的,似乎問題出在工具上,或者我的目錄結構與正確的設置不匹配,或者是其他的錯誤:S。如果任何人有類似的問題,一些幫助將粉碎! (爲了記錄,我的設置是使用Arduino網站上的說明完成的,儘管我已經安裝了Android SDK工具)。 Will Scott-Jackson

回答

1

聽起來好像您並沒有在您的項目中添加support library,或者您還沒有將其下載到Android SDK中。

ADK1 demokit應用程序的目標API級別10(Android 2.3.3);這意味着您需要在項目中使用支持庫,這就是編譯器抱怨10級庫依賴不可用的原因。支持庫在SDK Manager中單獨下載,因此您的開發環境中可能沒有它們。

在Android API級別12及更高版本中,USB配件協議已添加到框架API,因此有two different ways可使用配件協議。因此,如果您的目標是蜂窩版和更高版本,則您不需要已使用支持庫,但您必須更新demokit應用程序代碼才能使其工作。

希望這會有所幫助。

0

因此,我已經仔細檢查了我的設置,並開始了一個我腦海中想要的項目,它似乎適當地導入了這些庫。到目前爲止好,但是當我輸入:

ArduinoAdkUsb arduino; 

void setup() { 
    arduino = new ArduinoAdkUsb(this); 
    //Other UI initialisation etc. 
} 

我得到這個錯誤:

##name## ##version## by ##author## 
FATAL EXCEPTION: Animation Thread 
java.lang.NoClassDefFoundError: com.android.future.usb.UsbManager 
    at cc.arduino.ADKCommunication.<init>(Unknown Source) 
    at cc.arduino.ArduinoAdkUsb.<init>(Unknown Source) 
    at                
    processing.android.test.sketch_120730a. 
    sketch_120730a.setup(sketch_120730a.java:48) 
    at processing.core.PApplet.handleDraw(Unknown Source) 
    at processing.core.PGraphicsAndroid2D.requestDraw(Unknown Source) 
    at processing.core.PApplet.run(Unknown Source) 
    at java.lang.Thread.run(Thread.java:856) 

後的應用程序已經建成並安裝到我使用的是Android平板電腦。任何想法我怎麼能過來呢?從我可以告訴,這沒有問題找到com.android.future.usb.manager編譯和安裝程序,但一旦它試圖運行它可以找到它。

0

基於從http://stream.tellart.com/controlling-arduino-with-android/

在實例本教程RGB_Arduino名稱,版本和作者的變量在草圖的頂部設置。

試着在你的Arduino草圖的頂部添加在這部分代碼正下方庫進口

// accessory descriptor. It's how Arduino identifies itself to Android 
char applicationName[] = "Mega_ADK"; // the app on your phone 
char accessoryName[] = "Mega_ADK"; // your Arduino board 
char companyName[] = "Freeware"; 

// make up anything you want for these 
char versionNumber[] = "1.0"; 
char serialNumber[] = "1"; 
char url[] = "http://labs.arduino.cc/adk/"; // the URL of your app online 


//initialize the accessory: 
AndroidAccessory usb(companyName, applicationName, 
accessoryName,versionNumber,url,serialNumber);