SL4A apk 编译生成

SL4A apk 编译生成

前言:SL4A(即 Scripting Layer for Android)是一个 Android 脚本解释环境,可用于自动化测试,可是我根据书本的自动化步骤操作时,遇到了不少坑,下面是填坑的系列过程,如果大家恰好工作中也遇到了 SL4A 的相关使用,希望我的填坑过程可以帮助大家避坑,节省时间。

前往 SL4A 的官网网站

SL4A 书本给的官网地址为 http://code.google.com/p/android-scripting

然而当我们前往这个网站时,发现官网地址已经改变了。

SL4A于是,我们前往新的官网地址,即 GitHub 地址。
SL4A github
我们可以把该项目源码 clone 到本地,然后自行编译 SL4A 的 apk 文件。因为没有办法,原来的官网地址是给我们 apk 的下载地址的,现在直接把源码给我们了,只能我们自己去编译。

下载 SL4A 文件

目录结构如下:
SL4A
读一下 README 文件,看一下相关的介绍,下载别人的代码时,如果有 README 文件,一定先读该文件,该文件肯定会写了作者的一些建议,手册等信息。这个 README 我是没怎么看懂的,前往 android 这个目录文件夹。
SL4A
读一下 README 文件。
README
那我们从 README 中了解到,项目工程是 Eclipse 环境的,主程序是 ScriptingLayerForAndroid 。

导入到 Eclipse 中

在导入中,有点问题的,ScriptingLayerForAndroid 是一个 Android 工程项目,可以直接导入,但是其他的并不是,在导入其他依赖 Library 时,我是先在 Eclipse 中建立 Android 项目,设置为 Library,将 Google 的代码复制到 Eclipse 中的。
Eclipse
除了 ScriptingLayerForAndroid,其他都是先在项目中建立 Android 工程,设置为 library,手动复制代码进去,各个 library 相互之间会有一点依赖,自己处理一下即可。这样,ScriptingLayerForAndroid 就不会有编译错误了,接下来是运行到设备上去,运行过程中,会有一些错误,我说一下我遇到的错误以及解决方案。

运行 SL4A 到设备上

第一个错误:Unable to execute dex: Multiple dex files define

运行时报这样的编译错误,参考下面博客解决该问题:
https://blog.csdn.net/nomisshe/article/details/9083331

第二个错误:解决后可以运行到设备上面了,但是会闪退:

[2019-07-09 15:00:17 - ScriptingLayerForAndroid] Installing ScriptingLayerForAndroid.apk...
[2019-07-09 15:00:22 - ScriptingLayerForAndroid] Success!
[2019-07-09 15:00:22 - BluetoothFacade] Could not find BluetoothFacade.apk!
[2019-07-09 15:00:22 - Common] Could not find Common.apk!
[2019-07-09 15:00:22 - InterpreterForAndroid] Could not find InterpreterForAndroid.apk!
[2019-07-09 15:00:22 - ScriptingLayer] Could not find ScriptingLayer.apk!
[2019-07-09 15:00:22 - SignalStrengthFacade] Could not find SignalStrengthFacade.apk!
[2019-07-09 15:00:22 - TextToSpeechFacade] Could not find TextToSpeechFacade.apk!
[2019-07-09 15:00:22 - Utils] Could not find Utils.apk!
[2019-07-09 15:00:22 - WebCamFacade] Could not find WebCamFacade.apk!

报找不到一些 apk 文件,参考下面的博客解决方法:
https://blog.csdn.net/lissdy/article/details/7573714

其实,我这样解决后,还是会报一个错误,而且运行的时候也会输出这些错误信息,但是我解决了第三个问题后,就可以成功运行了。

第三个错误:

java.lang.RuntimeException: Unable to start activity ComponentInfo
{com.googlecode.android_scripting/com.googlecode.android_scripting.activity.ScriptManager}: 
android.util.AndroidRuntimeException: You cannot combine custom titles with other title features

ScriptManagerCustomizeWindow上面代码会报错,其实是因为项目中没有 style.xml 文件导致的,我添加了 style.xml 代码就可以跑通了,但是会把 actionBar 的菜单栏给覆盖掉,而菜单栏中的菜单是我们用这个程序时需要用的,所以,我们可以把 CustomzeWindow.requestCustomTitle() 这行代码注释掉,直接自己 setContentVeiw() 即可。

最后成功的图片我就不截图给大家了,希望可以帮助大家避掉一些坑。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值