下面介绍的是在eclipse中使用gradle进行多渠道打包(添加签名+混淆)

1,首先新建一个android测试项目,结构如下图所示:

2,选中右键选择expert->生成gradle文件,如下图所示:

3,刷新项目(F5)多了bulid文件和gradle文件夹(如果刷新后并没有出现gradle文件夹,可以手动创建新项目按以上步骤添加一般就会出现,复制到需要打包的项目根目录下即可),如下图所示:

4,打开gradle-wrapper.properties,如下图所示:

去官网下载对应的gradle-1.6-bin.zip,如果不知道怎么在官网下载,可以直接谷歌百度,一般会有.

5,配置gradle环境变量

下载的gradle-1.6-bin.zip解压路径
GRADLE_HOME :

添加到path:

6,测试环境是否配置成功(cmd 输入gradle -v):

7,打开build.gradle准备配置打包

我们要配置的是多渠道,签名,和混淆.

8,配置签名和混淆(在android节点内添加):

signingConfigs {  
        myConfig {  
//填写你的keystore路径和密码们(配置签名)
            storeFile file("D:\\xxx\\xxx\\xxx.keystore") 
            storePassword "xxx"  
            keyAlias "xxx"  
            keyPassword "xxx"  
        }  
    }  
    buildTypes {
        release {
//添加签名
            signingConfig signingConfigs.myConfig
//执行混淆
            runProguard true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
        }
    } 

9,配置多渠道(同样在build文件的android节点中添加):

  productFlavors {  
        baidu {  
            manifestPlaceholders = [ CHANNEL_NAME:"Baidu"]  
        }  
        xiaomi {  
            manifestPlaceholders = [ CHANNEL_NAME:"Xiaomi" ]  
        }  
        wandoujia {  
            manifestPlaceholders = [ CHANNEL_NAME:"Wandoujia" ]  
        }  
        yingyongbao {  
            manifestPlaceholders = [ CHANNEL_NAME:"yingyongbao" ]  
        }  
        huawei {  
            manifestPlaceholders = [ CHANNEL_NAME:"huawei" ]  
        }  
  
    }  
红色文字就是打包写入的渠道名;CHANNEL_NAME是需要在你项目清单文件中配置的相对应:
如果是友盟多渠道,则需要在AndroidManifest.xml中的application节点里添加如下配置:
<meta-data
            android:name="UMENG_CHANNEL"
            android:value="${CHANNEL_NAME}" />
${CHANNEL_NAME}在打包的时候就会被之前配置在build的渠道名替换

10,开始正式打包

在控制台中,进入项目所在的目录,执行gradle clean
 
 
gradle build过程报了几个错:
   1. baidu {  
            manifestPlaceholders = [ CHANNEL_NAME:"Baidu"]  
        }    baidu这个关键词 不能以数字开头
   2.缺少local.properties文件:创建local.properties文件(和混淆文件同目录),添加sdk路径,我的:
      sdk.dir= E:/adt-bundle-windows-x86_64-20140702/sdk
   3.某些 .9.png图片生成不正规 AAPT 工具无法确认 9-patch 图片中的拉伸区域,重新制作,或去掉.9
   4.添加.so的声明(不声明影响功能)sourceSets-main中添加jniLibs.srcDir(['libs'])
   5.打出的包有乱码:首先看下eclipse的编码环境(如是GBK),在android节点中添加 android { compileOptions.encoding = "GBK" } 
 
 
然后执行gradle build
 
release.apk就是我们需要的多渠道包.

ps:不同的项目不同的使用者在打包的时候可能存在一些问题导致打包失败,仔细查看cmd中报错信息都不难解决(可能需要的其他cmd指令:cls->清屏;cd /d 路径->移动到路径文件夹).

Eclipse打包多渠道包的更多相关文章

  1. Eclipse打包多渠道包(库工程版)

    请先移步多渠道打包http://www.cnblogs.com/bhm666/p/6438776.html 自从上次使用了Gradle打渠道包后,遇到了各种各样的问题,不过也是小问题,仍然在几个项目上 ...

  2. [原]Android打包之Eclipse打多渠道包

    Android自动打包流程详细图: 步骤一和步骤二参考:[原]Android打包之Eclipse打包 步骤三:编写build.xml <?xml version="1.0" ...

  3. eclipse打包jar包

    项目右键  选择Export 选择java文件夹 选择 JAR file选择包,类,选择导出路径然后 Finish

  4. Ant自动化打多渠道包,Android批量打包提速

    Eclipse用起来虽然方便,但是编译打包android项目还是比较慢,尤其将应用打包发布到各个渠道时,用Eclipse手动打包各种渠道包就有点不切实际了,这时候我们用到Ant帮我们自动编译打包了. ...

  5. Eclipse导出jar包Unity打包错误

    前几天接SDK使用的是Android Studio昨天打开AndroidStudio后自动更新了gradler然后失败了然后AndroidStudio就挂了.就是用之前的方法Eclipse到处jar包 ...

  6. Eclipse使用总结——使用Eclipse打包带源码的jar包

    平时开发中,我们喜欢将一些类打包成jar包,然后在别的项目中继续使用,不过由于看不到jar包里面的类的源码了,所以也就无法调试,要想调试,那么就只能通过关联源代码的形式,这样或多或少也有一些不方便,今 ...

  7. java eclipse打jar包和执行jar中的main函数

    jar包使用eclipse打包步骤 右键需要打包的项目->选择Export 到这里有两种打包的方式 1.如果项目中没有使用其他第三方包等,则直接选择下图中的第一种即可(JAR file) 2.如 ...

  8. Eclipse打JAR包的使用

    编译Java代码你当然可以直接使用Javac,但对于大多同学还是使用Eclipse编辑器来得快捷.这篇文章来说说我使用Eclipse编译后的执行之路,走路许多弯路,看我一一道来. 演示系统的架构 首先 ...

  9. Gradle 打多渠道包

    使用gradle 打多渠道包记录经验如下图可见,每个渠道是包含debug 和realse版本的.通过打印BASE_URL 发现在渠道和版本中都可以修改BuildConfig的常量,这样一次可以打出多个 ...

随机推荐

  1. Java中有多少种设计模式?请简单画一下三种常见设计模式的类图?

    转载:http://blog.csdn.net/longyulu/article/details/9159589 一.设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式.抽 ...

  2. [NOIP2012] day2 T3疫情控制

    题目描述 H 国有 n 个城市,这 n 个城市用 n-1 条双向道路相互连通构成一棵树,1 号城市是首都,也是树中的根节点. H 国的首都爆发了一种危害性极高的传染病.当局为了控制疫情,不让疫情扩散到 ...

  3. 我的vim 配置——nerdtree、ack vim、vim sneak

    set nu colorscheme darkblue syntax on " set term=xterm " 设置终端类型 set nonumber " 是否显示行号 ...

  4. Java简单的加密解密算法,使用异或运算

    package cn.std.util; import java.nio.charset.Charset; public class DeEnCode { private static final S ...

  5. I.MX6 bq27441 GPOUT interrupt

    /******************************************************************** * I.MX6 bq27441 GPOUT interrup ...

  6. 并不对劲的bzoj5020:loj2289:p4546:[THUWC2017]在美妙的数学王国中畅游

    题目大意 有一个n(\(n\leq 10^5\))个点的森林,每个点\(u\)上有个函数\(f_u(x)\),是形如\(ax+b\)或\(e^{ax+b}\)或\(sin(ax+b)\)的函数,保证当 ...

  7. (unix domain socket)使用udp发送>=128K的消息会报ENOBUFS的错误

    一个困扰我两天的问题, Google和Baidu没有找到解决方法! 此文为记录这个问题,并给出原因和解决方法. 1.Unix domain socket简介 unix域协议并不是一个实际的协议族,而是 ...

  8. asp.net mvc4 不支持EF6

    参考文章:http://www.cnblogs.com/zeusro/p/3403771.html http://q.cnblogs.com/q/40926/ 解决方法是 1.把EF6删除改用EF5. ...

  9. bzoj1048(记忆化搜索)

    1048: [HAOI2007]分割矩阵 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1218  Solved: 890[Submit][Statu ...

  10. 深入学习Ajax

    1.什么是Ajax? AJAX的全称是Asynchronous Javascript And XML (异步的JavaScript和XML).是一种在无需重新加载整个网页的情况下,能够更新部分网页的技 ...