1

所以几天前我得到了一个 Arduino Mega ADK 板,最后几个晚上我一直在设置我的开发环境,掌握工具等。工具和库都工作正常,例如我可以得到一个在 Processing IDE 中编写的程序,在运行 Android 4.03 的 Asus Eee Pad Transformer TF101 上编译和运行。但是当我尝试编译和运行其中一个预先编写的示例时,它给了我一个编译器错误:

Android SDK Tools Revision 20 安装在 C:\NVPACK\android-sdk-windows 项目类型:应用程序项目目标:Android 2.3.3 API 级别:10 库依赖项:无库


API<=15:将 annotations.jar 添加到类路径。将 AndroidManifest 文件合并为一个。清单合并已禁用。仅使用项目清单。没有要编译的 AIDL 文件。没有要编译的 RenderScript 文件。正在生成资源 ID... 正在生成 BuildConfig 类。

BUILD FAILED C:\NVPACK\android-sdk-windows\tools\ant\build.xml:680:执行此行时出现以下错误:C:\NVPACK\android-sdk-windows\tools\ant\build.xml :693: 编译失败;有关详细信息,请参阅编译器错误输出。

总时间:7秒

这就是控制台似乎也输出的所有内容,这相当令人沮丧!据我所知,我所有的 SDK 版本、工具和插件都是最新的。我已经使用我硬盘上的 Linux 分区进行了尝试,它产生了相同的错误消息,尽管它提到了包 com.Android.future.UsbAccessory 的问题。鉴于我所看到的,问题似乎出在工具上,要么我的目录结构与正确的设置不匹配,要么有其他问题:S。如果有人有类似的问题,一些帮助将是粉碎!(作为记录,我的设置是使用 Arduino 网站上的说明完成的,尽管我已经安装了 Android SDK 工具)。将斯科特-杰克逊

4

3 回答 3

1

听起来您还没有将支持库添加到您的项目中和/或您还没有将其下载到您的 Android SDK 中。

ADK1 演示套件应用针对 API 级别 10 (Android 2.3.3);这意味着您需要在项目中使用支持库,这就是编译器抱怨 10 级库依赖项不可用的原因。支持库是SDK Manager中的单独下载,因此您的开发环境中可能没有它们。

在 Android API Level 12 及更高版本中,USB 附件协议被添加到框架 API 中,因此有两种不同的方式使用附件协议。因此,如果您的目标是 Honeycomb 和更高版本,则不必使用支持库,但您必须更新 demokit 应用程序代码才能使其工作。

希望这可以帮助。

于 2012-07-27T15:42:33.723 回答
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 来编译和安装程序没有问题,但是一旦它尝试运行它就可以找到它。

于 2012-07-31T14:17:29.070 回答
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);
于 2012-08-02T10:16:53.750 回答