美文网首页CollectionAndroid KnowledgeAndroid Tech
dryrun---github Android项目演示工具

dryrun---github Android项目演示工具

作者: 青蛙要fly | 来源:发表于2016-11-27 22:51 被阅读2126次
    WechatIMG3.jpeg

    情境重现:
    Github,作为全球最大的男性交友平台(呵呵一笑,你懂得🙃),基本每天都会在Github上进行开源项目的查看,原来想看个开源项目,会先看下方这个项目的作者有没有贴上效果图或者动态图,如果没有贴详细图又或者想看看具体的效果,我就会先下载源码,然后放到Android Studio中,然后跑一遍项目,等待N久的编译过程,然后再在手机上看效果,然后发现效果不好,不满足我的需求,我又要去把这个项目的源码删除。这是一个累死人的过程。这个过程耗时太长也很折磨人。但是我在网上看到dryrun之后,一切就变了,只需要运行一句话就可以看到该项目在手机上预览的效果。

    -------------------------我是说明分割线--------------------------------------------

    因为本人的电脑是mac版本。所以我就这边献上mac版安装及使用教程,然后看到简书上有另外作者写了window版的dryrun教程,附上链接:http://www.jianshu.com/p/9cc10563ab41

    ------------------------我是教程分割线-------------------------------------------

    首先还是老规矩,附上dryrun的github源码地址:https://github.com/cesarferreira/dryrun

    按照该地址中安装说明,要先在mac终端中执行
    $ gem install dryrun
    来进行dryrun的安装,ok,我于是在终端运行,跑了一下改指令。

    然后遇到第一个问题:

    1.gem指令找不到

    于是本着去查看gem是什么东西的想法,百度了一下(这种基本资料类的就不谷歌了)。
    说明如下:(附上查询的文章的连接http://blog.csdn.net/lecool/article/details/50260575

           RubyGems软件允许您轻松下载、安装和使用ruby在您的系统软件包。 这个软件包被称为“Gem”和包含一个Ruby包应用程序或库。
           Gem可以用来扩展或修改在Ruby应用程序功能。 通常他们用于分发可重用的功能,与其他ruby爱好者们用于共享他们的应用程序和库。 一些Gem提供命令行实用工具来帮助自动化任务,加快你的工作。
    

    然后再弄清楚gem是什么后,就遇到第二个问题:

    2.如何安装gem

    还是继续度娘gem安装教程,附上链接(http://www.cnblogs.com/ihojin/p/ruby-gem-update-the-latest-version.html)
    安装步骤:
    (1)点击上面链接进入到官网,从顶部的链接下载压缩包;
    (2)解压缩到指定文件夹,并通过 “cd” 指令进入到该文件夹;
    (3)“ruby setup.rb” 使用该命令安装(可能需要管理员权限,使用sudo)

    这时候我再执行$ gem install dryrun
    结果报错,权限不够,

    屏幕快照 2016-11-27 10.12.39 PM.png

    于是在指令前面加sudo,我这边安装dryrun的最后指令是
    $ sudo gem install -n /usr/local/bin dryrun

    然后dryrun也顺利安装了。接下去,就根据dryrun的github网页中的例子显示那样,跑一个helloworld的例子。(每个程序员第一个接触的经典语句,哈哈)

    $ dryrun git@github.com:cesarferreira/android-helloworld.git

    (ps:这时候要有模拟器或者手机不然会说没有设备连接)


    屏幕快照 2016-11-27 10.20.43 PM.png

    当设备连接了,再运行上面的指令后,本来以为可以守得云开见月明,结果又报错了。遇到第三个问题

    3.找不到ADB路径

    屏幕快照 2016-11-26 08.57.28 PM.png

    这时候就进行在stackoverflow上看了关于ANDROID_HOME的配置(附上链接:http://stackoverflow.com/questions/19986214/setting-android-home-enviromental-variable-on-mac-os-x)

    于是在mac的.bash_profile配置文件中配置相关内容:

    (先上一段.bash_profile的操作步骤,知道的人请忽略该段:

    MAC 打开.bash_profile
     1. 启动终端Terminal
    
    2. 进入当前用户的home目录
        输入cd ~
    3. 创建.bash_profile(如果没有.bash_profile则创建,有则跳过该步)
        输入touch .bash_profile
    4. 编辑.bash_profile文件
        输入open -e .bash_profile
    5. 保存文件,关闭.bash_profile
    6. 更新刚配置的环境变量
        输入source .bash_profile
    

    )

    (上面的StackOverflow链接最好看下,里面的ANDROID_HOME的路径配置有二种不同的方式,这是其中一种,根据你的SDK是如何安装来决定的)

    我在.bash_profile中的配置,如下图红色矩形标注的样子:


    屏幕快照 2016-11-27 10.29.53 PM.png

    然后是不是这下终于没问题了,于是又跑了一遍,结果又出现了问题:

    4.Github中的项目的android sdk或者gradle的版本

    我们可以看到这个helloworld的例子的android sdk 如下图所示,compileSdkVersion为25,而我本地最新为24


    本地Android SDK查看路径.png hello world 的build.gradle部分配置截图.png

    于是就运行报错了。


    运行报错.png

    于是我到Android Studio 中的某个项目中,估计把build.gradle中的compilesdk故意改成25,然后就会报错,然后根据提示下载了android-25。然后再运行,就成功了。(有时候换个git项目演示,也会有项目中配置文件设置的gradle版本在本地没有,则会直接自动进行下载,然后再运行)

    最后的运行效果

    ![项目运行效果图.png](http:https://img.haomeiwen.com/i1529568/e83e77f196ec34ad.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

    PS: 最后同时我也附上本地各个版本gradle的路径截图:

    本地gradle的路径.png

    相关文章

      网友评论

      • 头发还没秃:C:\Users\Administrator>dryrun https://github.com/xxx/BehaviorTest.git
        Searching for devices...
        No devices attached, but I'll run anyway

        ======================================================

        Something went wrong while executing this:
        $ git clone --depth 1 https://github.com/xxx/BehaviorTest.git C:/Users/ADMINI~1/AppData/Local/Temp/dryrun/xxx/BehaviorTest

        ======================================================

        一直提示找不到设备
      • 就是这个强:请问楼主,有遇到过我这个问题吗?
        Building native extensions. This could take a while...
        ERROR: Error installing dryrun:
        ERROR: Failed to build gem native extension.

        current directory: /Library/Ruby/Gems/2.3.0/gems/ruby-ll-2.1.2/ext/c
        /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby -r ./siteconf20171212-4311-1i57vtl.rb extconf.rb
        mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/include/ruby.h

        extconf failed, exit code 1

        Gem files will remain installed in /Library/Ruby/Gems/2.3.0/gems/ruby-ll-2.1.2 for inspection.
        Results logged to /Library/Ruby/Gems/2.3.0/extensions/universal-darwin-17/2.3.0/ruby-ll-2.1.2/gem_make.out
      • 7509f3251f4b:不知道是不是支持所有的第三方库
      • cornflower10:个人建议:对于简单的demo还是可以用用的,对于稍微复杂一点的,还不如直接用as直接拉项目下来编译
      • T_TK:前面都按照文章所说的配置了,之后又冒出这个问题,请问一下怎么解决?多谢了!
        Cloning into '/var/folders/0_/n55tw2b55h3_xyctlgtv9qnm0000gn/T/dryrun/cesarferreira/android-helloworld'...
        Warning: Permanently added the RSA host key for IP address '192.30.253.113' to the list of known hosts.
        Permission denied (publickey).
        fatal: Could not read from remote repository.

        Please make sure you have the correct access rights
        and the repository exists.


        ======================================================

        Something went wrong while executing this:
        $ git clone --depth 1 git@github.com:cesarferreira/android-helloworld.git /var/folders/0_/n55tw2b55h3_xyctlgtv9qnm0000gn/T/dryrun/cesarferreira/android-helloworld
        :pray: :pray: :pray:
      • shangwfa:bash_profile文件:export NVM_DIR="/Users/menmen/.nvm"
        [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
        export ANDROID_HOME=/Users/menmen/Library/Android/sdk
        export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

        export GRADLE_HOME=/Users/menmen/Downloads/gradle-2.10;
        export PATH=$PATH:$GRADLE_HOME/bin

        还是有这个问题:
        System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/open3.rb:211:in `spawn': No such file or directory - /platform-tools/adb (Errno::ENOENT)
        from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/open3.rb:211:in `popen_run'
        from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/open3.rb:99:in `popen3'
        from /Library/Ruby/Gems/2.0.0/gems/dryrun-0.9.0/lib/dryrun/dryrun_utils.rb:54:in `run'
        from /Library/Ruby/Gems/2.0.0/gems/dryrun-0.9.0/lib/dryrun/dryrun_utils.rb:46:in `run_adb'
        from /Library/Ruby/Gems/2.0.0/gems/dryrun-0.9.0/lib/dryrun.rb:108:in `pick_device'
        from /Library/Ruby/Gems/2.0.0/gems/dryrun-0.9.0/lib/dryrun.rb:168:in `call'
        from /Library/Ruby/Gems/2.0.0/gems/dryrun-0.9.0/bin/dryrun:6:in `<top (required)>'
        from /usr/local/bin/dryrun:23:in `load'
        from /usr/local/bin/dryrun:23:in `<main>'

        楼主给看看嘛原因

      • 69ae657ede49:Downloading https://services.gradle.org/distributions/gradle-2.14.1-all.zip
        部署过程中报错
        Unzipping /Users/MicroKibaco/.gradle/wrapper/dists/gradle-2.14.1-all/8bnwg5hd3w55iofp58khbp6yv/gradle-2.14.1-all.zip to /Users/MicroKibaco/.gradle/wrapper/dists/gradle-2.14.1-all/8bnwg5hd3w55iofp58khbp6yv
        Exception in thread "main" java.util.zip.ZipException: error in opening zip file
        at java.util.zip.ZipFile.open(Native Method)
        at java.util.zip.ZipFile.<init>(ZipFile.java:219)
        at java.util.zip.ZipFile.<init>(ZipFile.java:149)
        at java.util.zip.ZipFile.<init>(ZipFile.java:163)
        at org.gradle.wrapper.Install.unzip(Install.java:214)
        at org.gradle.wrapper.Install.access$600(Install.java:27)
        at org.gradle.wrapper.Install$1.call(Install.java:74)
        at org.gradle.wrapper.Install$1.call(Install.java:48)
        at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:65)
        at org.gradle.wrapper.Install.createDist(Install.java:48)
        at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:128)
        at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61)


        ======================================================

        Something went wrong while executing this:
        $ ./gradlew clean

        ======================================================
        青蛙要fly:@69ae657ede49 不好意思了。我现在才看到。我也不是很清楚。你是就这个gradle-2.14.1-all版本下不下来,还是其他版本也下载不下来?
      • ftc300_carl:➜ bin sudo gem install dryrun
        Password:
        Fetching: bundler-1.13.6.gem (100%)
        ERROR: While executing gem ... (Errno::EPERM)
        Operation not permitted - /usr/bin/bundle
        楼主有遇到这个问题吗?

        青蛙要fly:@装糊涂的猪 下载dryrun那里改为了:sudo gem install -n /usr/local/bin dryrun
        青蛙要fly:@装糊涂的猪 :+1: 那我文章也要改下了
        ftc300_carl:已经解决 先执行
        sudo gem install bundler -n /usr/local/bin

      本文标题: dryrun---github Android项目演示工具

      本文链接:https://www.haomeiwen.com/subject/vuvnpttx.html