动手玩Android Scripting Environment
2010-06-23 00:04:00 来源:WEB开发网所以问题是看起来就是ASE中使用了会导致模拟器挂起的Sensor API,那么我们只要在ASE中禁用掉它理论上就可以使ASE能够在模拟器上正常运行,当然和Sensor相关的重力感应和罗盘功能肯定是不能工作的了(除了Ctrl+F12可以模拟重力感应相关的屏幕翻转,罗盘还真是很难在emulator中来模拟)。
动手解决
这里,请确保正确安装和配置Android 1.5 SDK和ADT了,并且在PC上安装有Python的解释器(Windows或者Linux平台均可)。
从SVN checkout最新的ASE代码,导入到Eclipse中,随后把lib目录下的TTS库加入项目的build path,会发现有android.os.Exec相关的几个类无法找到,这时ASE Wiki的CompilingASE中提到的fix_android_sdk.py脚本就派上用场了。该脚本可以帮助我们从Android源代码中编译出android.os.Exec的class文件,并添加到SDK的jar文件中,以解决ASE的编译问题。
这里需要注意的是,Wiki中提到需Android的源代码,事实上我们只需要有其中的frameworks/base就可以了,如果手上没有完整的代码的话,从Android Git版本库中下载一个frameworks/base的android-1.5r2这个tag的snapshot就行,大约35MB左右。下载完了以后把解出来的整个base目录放在android_source/frameworks/目录,然后根据wiki中的方法执行fix_android_sdk.py脚本成功以后,ASE项目的编译就OK了。
最后,注释掉AndroidFacade.java中和getSystemService(Context.SENSOR_SERVICE)、mSensorManager相关的代码,编译完成以后ASE就可以在模拟器中正常运行了。
更多精彩
赞助商链接