1.配置好android sdk ,java环境

2.重新签名apk文件

在用户目录下,会有一个.android的目录,把re-sign.jar放在该目录下。执行命令 java -jar re-sign.jar 即可

再把apk文件脱到打开的re-sign上。保存重新签名后的文件。

注意,弹出的如下需要截图,后面会用到。

也可以用脚本直接操作。bat脚本如下

bat脚本和re-sign.jar再同一个目录下。

@echo off
echo "你的.android目录为:"
echo %USERPROFILE%\.android\
copy /y re-sign.jar %USERPROFILE%\.android\ && java -jar re-sign.jar
pause

3.  

创建测试项目 如下图:选择testTarget时选择This project

4.创建项目后,新建junit4测试类

5.导入robotium的jar包

6.编写代码

package m.usewidget.test;

import static org.junit.Assert.*;

import org.junit.After;
import org.junit.Before;
import org.junit.Test; import com.robotium.solo.Solo; import android.test.ActivityInstrumentationTestCase2; public class testRobotiumTest extends ActivityInstrumentationTestCase2 { private Solo solo;
private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME="com.www.main.StyrtActivity"; private static Class<?> launcherActivityClass;
static{
try{
launcherActivityClass=Class.forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME);
}catch(ClassNotFoundException e){
throw new RuntimeException(e);
}
} public testRobotiumTest() {
//要执行的activity
super(launcherActivityClass);
// TODO Auto-generated constructor stub
} @Before
public void setUp() throws Exception {
//初始化solo对象
solo=new Solo(getInstrumentation(),getActivity());
} @After
public void tearDown() throws Exception {
solo.finishOpenedActivities();
}
//编写测试用例
@Test
public void test() {
solo.waitForDialogToOpen(); } }

  AndroidMainfest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="m.usewidget.test"
android:versionCode="29"
android:versionName="V1.0.29" > <uses-sdk android:targetSdkVersion="22" android:minSdkVersion="19" android:maxSdkVersion="22" /> <instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.www.tompot" /> <application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<uses-library android:name="android.test.runner" />
</application> </manifest>

  

7.配置

在eclipse中,新建一个Android Test Project,进行配置,使得自动化脚本与要测试的apk进行关联。

  1) 修改Android Test Project下的AndroidMainfest.xml文件,使得粗体标注的package名与resign生成的名字一致
    <instrumentation
          android:name ="android.test.InstrumentationTestRunner"
        android:targetPackage ="com.example.mobile.testedapp" />
  2) 在自动化脚本测试类中,声明初始类,也要与resign生成的main activity类名一致
    private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME ="com.example.mobile.testedapp.MainActivity" ;
 
 
 

8.运行

1.android 自带的模拟器安装

  1) 打开Android SDK安装目录

  2) 找到sdk下的platform-tools目录

  3) 把重新签名后的apk文件放在该目录下

  4) 打开命令提示符:cmd

  5) cd  /sdk/platform-tools

  6) 打开要安装apk的模拟机

  7) 运行命令:adb install testedapp.apk。看到Success,说明apk已经安装成功了。

再安装中出现问题:

  在将程序发布到手机上时提示该错误:

  INSTALL_FAILED_INSUFFICIENT_STORAGE

  原因:空间不够用

  解决方法:

  1. adb shell

  2. #df

  发现/data下空间不足,原来是安装了太多应用程序导致。

  3. 删除一些不需要的程序即可。

   第一种办法:在反复安装android apk的时候,有的时候可能会遇到adb install错误,内容是:Failure                 [INSTALL_FAILED_UPDATE_INCOMPATIBLE]
  这很可能是因为你在以前uninstall应用的时候,没有做彻底,只是简单的rm /data/app/下面的apk文件了,一个补救的办法如下:
  启动模拟器,然后进入菜单
  settings->applications->mange
  applications-> select the application->select "unistall".
  这样就能彻底删除了,然后再重新安装这个apk就没问题了

  第二种办法:修改模拟器内存大小

4.新建一个模拟器

2.夜神模拟器运行

启动模拟器

连接模拟器

  adb connect 127.0.0.1:62001
  adb devices

 1) 打开Android SDK安装目录

  2) 找到sdk下的platform-tools目录

  3) 把重新签名后的apk文件放在该目录下

  4) 打开命令提示符:cmd

  5) cd  /sdk/platform-tools

  6) 打开要安装apk的模拟机

  7) 运行命令:adb install testedapp.apk。看到Success,说明apk已经安装成功了。

运行测试:

运行时报错:Test run failed: Instrumentation run failed due to 'java.lang.ClassNotFoundException'

原因是:

    在自动化脚本测试类中,声明初始类,也要与resign生成的main activity类名一致
    private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME ="com.example.mobile.testedapp.MainActivity" ;
 再第7步配置过程中出错了,并没有resign生成的main activity的类名。
解决方法:

  查看debug-apk包的packageName、versionCode、applicationLabel、launcherActivity、permission等各种详细信息
  aapt dump badging <file_path.apk>

使用上面的命令查看:launchable-activity:参数。

并将private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME =launchable-activity获取的参数。

并将AndroidManifest.xml里面的参数按照debug包显示出来的修改添加

<uses-sdk android:targetSdkVersion="22" android:minSdkVersion="19" android:maxSdkVersion="22" />

android adk更新 mirrors.neusoft.edu.cn:80 代理 多试几次

参考:http://www.cnblogs.com/enjoytesting/p/3622657.html

http://blog.csdn.net/annkie/article/details/8714716

http://www.cnblogs.com/easypass/p/3867211.html

http://blog.sina.com.cn/s/blog_68f262210102vac3.html

eclipse 搭建Robotium环境--apk 环境搭建的更多相关文章

  1. Ubuntu杂记——Ubuntu下Eclipse搭建Maven、SVN环境

    正在实习的公司项目是使用Maven+SVN管理的,所以转到Ubuntu下也要靠自己搭环境,自己动手,丰衣足食.步骤有点简略,但还是能理解的. 一.安装JDK7 打开终端(Ctrl+Alt+T),输入  ...

  2. eclipse中SSH三大框架环境搭建<三>

    相关链接: eclipse中SSH三大框架环境搭建<一> eclipse中SSH三大框架环境搭建<二> 引言:通过上两篇文章我们已经可以掌握struts2和spring的环境的 ...

  3. eclipse中SSH三大框架环境搭建<二>

    通过上一篇博客我们可以轻松搭建strtus2的环境,接下来由我来继续介绍spring的环境搭建以及spring注入的简单使用 相关链接:eclipse中SSH三大k框架环境搭建<一> ec ...

  4. eclipse中SSH三大框架环境搭建<一>

    这里先简单介绍一下我用的三大框架版本以及下载地址 相关链接:eclipse中SSH三大框架环境搭建<二> eclipse中SSH三大框架环境搭建<三> struts-2.3.3 ...

  5. 基于Eclipse搭建Hadoop源码环境

    Hadoop使用ant+ivy组织工程,无法直接导入Eclipse中.本文将介绍如何基于Eclipse搭建Hadoop源码环境. 准备工作 本文使用的操作系统为CentOS.需要的软件版本:hadoo ...

  6. 【转】Eclipse和PyDev搭建完美Python开发环境(Ubuntu篇)

    原文网址:http://www.cnblogs.com/Realh/archive/2010/10/10/1847251.html 前两天在Windows下成功地搭好了一个Python开发环境,这次转 ...

  7. 搭建Eclipse、Resin Web开发环境

    搭建Eclipse.Resin Web开发环境 一.当然是安装java开发环境 参看: Java环境的搭建 http://www.cnblogs.com/ghj1976/archive/2010/04 ...

  8. Android SDK +Eclipse+ADT+CDT+NDK 开发环境在windows 7下的搭建

    Android SDK+Eclipse+ADT+CDT+NDK 开发环境在windows 7下的搭建 这几天一直在研究 Android SDK  C/C++平台的搭建,尽管以前有成功在Windows ...

  9. 使用Eclipse搭建C/C++开发环境(转)

    使用Eclipse搭建C/C++开发环境  文章出自:http://www.cnblogs.com/liuxianan/archive/2013/01/15/2861196.html 说明:网上有很多 ...

随机推荐

  1. 初学springMVC搭建框架过程及碰到的问题

    刚刚开始学spring框架,因为接了一个网站的项目,想用spring+springMVC+hibernate整合来实现它,现在写下搭建框架的过程及碰到的问题.希望给自己看到也能让大家看到不要踏坑. 一 ...

  2. CSS Unicode 编码

    CSS 中文字体 Unicode 编码表 在 CSS 中设置字体名称,直接写中文是可以的.但是在文件编码(GB2312.UTF-8 等)不匹配时会产生乱码的错误. 为此,在 CSS 直接使用 Unic ...

  3. mysql 基本使用

    SQL分类 -------------------数据库------------ 创建数据库  create database xxx; 查询所有的数据库 show databases; 查询当前数据 ...

  4. 制作与使用静态链接库(.lib)文件

    (一)制作.lib文件 (1)打开vs,选择“新建项目”,选择“Visual C++“,选择”Win32 控制台应用程序“. (2)点击”确定“,点击”下一步“,设置如下 (3)点击”完成“,然后就可 ...

  5. Twisted No module named win32api

    安装twisted成功后,使用时抛错: No module named win32api 解决方案,需要安装 pywin32 下载地址: https://sourceforge.net/project ...

  6. C#.NET中的CTS、CLS和CLR

    以下内容来自:http://www.cnblogs.com/zagelover/articles/2741370.html 在学习.NET的过程中,都会不可避免地接触到这三个概念,那么这三个东西是什么 ...

  7. Ubuntu各种软件的安装

    普通的例如g++.deadbeef等源中有的软件,可以用apt-get安装 sudo apt-get install XXX 还有很多直接在software center搜索下载 对于下载来源代码需要 ...

  8. c语言 数组最小数

    数组求一个数组的最小数 int number[20] = {0}; int min = 0; for (int i = 0; i < 20; i++) { number[i] = arc4ran ...

  9. J2SE知识点摘记(十三)

    1.        字节流 InputStream(输入字节流)是一个定义了java流式字节流输入模式的抽象类.该类的所有方法在出错时都会引发一个IOExcepiton异常. Void close() ...

  10. Open source and free log analysis and log management tools.

    Open source and free log analysis and log management tools. Maintained by Dr. Anton Chuvakin Version ...