下面介绍的是在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中会存在内存泄露吗?请简单描述。

    本文转载自:Java中会存在内存泄漏吗,请简单描述 会.java导致内存泄露的原因很明确:长生命周期的对象持有短生命周期对象的引用就很可能发生内存泄露,尽管短生命周期对象已经不再需要,但是因为长生命周 ...

  2. 设计模式-(18)命令模式 (swift版)

    一,概念: 在软件系统中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”.但在某些场合,比如要对行为进行“记录.撤销/重做.事务”等处理,这种无法抵御变化的紧耦合是不合适的.在这种情况下,如何将 ...

  3. 利用JS 阻止表单提交

    情景一:不存在Ajax异步操作 1 使用背景:会议室预定管理系统中,当表单提交的时候需要验证预约的时间是否符合预定规则(不需要通过访问服务器),否则提示错误信息,阻止表单提交. 2 相关技术点: fo ...

  4. evm指令集手册

    evm指令集手册 Opcodes 结果列为"-"表示没有运算结果(不会在栈上产生值),为"*"是特殊情况,其他都表示运算产生唯一值,并放在栈顶. mem[a.. ...

  5. js验证form表单示例

    js验证form表单示例 检测测试了js表单验证,无jQuery(简单的功能有时无需jQuery版本) js代码如下:   <script type="text/javascript& ...

  6. echo 到 stderr

    This question is old, but you could do this, which facilitates reading: >&2 echo "error& ...

  7. 并不对劲的bzoj4816:loj2000:p3704[SDOI2017]数字表格

    题目大意 有函数\(f(x)\),\(f(0)=0,f(1)=1,f(x)=f(x-1)+f(x-2)\) \(t\)(\(t\leq1000\))组询问,每次给定\(n,m\)(\(n,m\leq1 ...

  8. [Tjoi2016&Heoi2016] 树

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=4551 [算法] 树链剖分 时间复杂度 : O(QlogN) [代码] #includ ...

  9. python编写猜拳代码

    一.项目要求: 电脑随机出拳和用户猜拳三次.胜利条件如下: (1)(石头 胜 剪刀) (2)(剪刀 胜 布) (3)(布 胜 石头) 二.代码 #!/usr/bin/env python # -*- ...

  10. VC++6.0不兼容win10导致调试按钮不能正常作用得解决方案

    win10正式版是一个全新的操作系统,所以我们在系统中运行类似VC6这类旧软件时,难免会遇到一些问题. 比如,现在有些用户在win10环境下运行VC6时,按F10.F11进行单步调试, 会出现:Unh ...