相关疑难解决方法(0)

如何使用SDK示例代码从命令行使用AIDL工具?

我的问题是从命令行使用aidl.exe(在Windows系统上).这个问题与Eclipse,Netbeans等无关.

Android SDK包含以下三个AIDL定义文件:

IRemoteService.aidl IRemoteServiceCallback.aidl ISecondary.aidl

位于以下目录中:

C:\ Android的SDK-WINDOWS \平台\ Android的2.1 \样本\ ApiDemos的\ src\COM \例子\机器人\的API \应用

为简单起见,我将aidl.exe复制到上面的目录中.然后,从控制台窗口,我成功使用以下两个命令来生成.java文件:

C:\ Android-project\ApiDemos\src\com\example\android\apis\app> aidl IRemoteServiceCallback.aidl C:\ Android-project\ApiDemos\src\com\example\android\apis\app> aidl ISecondary.aidl

调用这些命令分别生成文件IRemoteServiceCallback.java和ISecondary.java.到现在为止还挺好.

我注意到两个.aidl文件都很简单; 它们不包含"进口"声明.

剩余的.aidl文件IRemoteService.aidl在第19行包含以下import语句:

import com.example.android.apis.app.IRemoteServiceCallback;

当我在此文件上运行AIDL工具时出现问题:

  C:\Android-project\ApiDemos\src\com\example\android\apis\app>aidl IRemoteService.aidl
Run Code Online (Sandbox Code Playgroud)

这样做会导致在控制台窗口中打印以下错误消息:

IRemoteService.aidl:19:找不到com.example.android.apis.app.IRemoteServiceCallback类的导入

AIDL工具显然无法在运行它的同一目录中找到IRemoteServiceCallback.aidl文件.根据AIDL工具的"用法"消息,有一个命令显然可以用来解决这个问题:

  -I<DIR>    search path for import statements.
Run Code Online (Sandbox Code Playgroud)

问题:我无法以避免错误消息的方式指定-I,并让AIDL工具从.aidl文件生成带有'import'语句的.java文件.(注意:我将Windows环境变量'path'设置为当前目录.)以下是我尝试过的一些变体:

-Ic:\com\example\android\apis\app
-Ic:/com/example/android/apis/app
-I.\
-I.
Run Code Online (Sandbox Code Playgroud)

我一定很遗憾.令人惊讶的是,即使我已经看到在各个地方发布的这个问题的变体,我还没有看到答案或任何有关AIDL命令行使用的文档(除了aidl.exe使用信息).有人能告诉我吗?

谢谢,马特

android aidl

11
推荐指数
2
解决办法
1万
查看次数

64位Eclipse不会在Android模拟器上安装.apk

在Windows 7 64位上,运行Eclipse 3.6 64位,JDK(jdk1.6.0_23)64位和Android 2.3(bitness?),通过Eclipse的Run | Run(Ctrl + F11)运行程序调用android模拟器,但不会在模拟器上安装.apk(当然也不会运行它).

(更新,回答@ Computerish的问题)我在Eclipse的控制台上得到的是:

[2010-12-16 10:23:33 - HelloAndroid] ------------------------------
[2010-12-16 10:23:33 - HelloAndroid] Android Launch!
[2010-12-16 10:23:33 - HelloAndroid] adb is running normally.
[2010-12-16 10:23:33 - HelloAndroid] Performing com.example.helloandroid.HelloAndroid activity launch
[2010-12-16 10:23:33 - HelloAndroid] Automatic Target Mode: launching new emulator with compatible AVD 'AVD23'
[2010-12-16 10:23:33 - HelloAndroid] Launching a new emulator with Virtual Device 'AVD23'
Run Code Online (Sandbox Code Playgroud)

在运行Eclipse 3.5.2和Android 2.2(全部为32位)的Windows XP上不会发生此问题.

我尝试了在这个帖子中接受的答案建议的解决方案,但它没有帮助.任务管理器将adb的图像名称显示为" adb.exe*32 ".也许Eclipse + JDK(64位)的比特与Android模拟器/ SDK之间存在不匹配?

是否使用64位JDK进行 Android开发尚未实现?

eclipse 64-bit android android-emulator apk

2
推荐指数
1
解决办法
3209
查看次数

标签 统计

android ×2

64-bit ×1

aidl ×1

android-emulator ×1

apk ×1

eclipse ×1