Eclipse中使用Gradle进行打包APK问题总结

自己不经常写博客有意见需要大家提出谢谢!

首先大家可以根据这位朋友的介绍http://blog.csdn.net/x605940745/article/details/41242687进行gradle进行配置我介绍一下我在这个过程中我遇到的一些问题;

1.首先Execution failed for task ':mergeF1DebugResources'.并指向你自定义属性的文件,出现这个问题是因为自定义属性标签有重复

2.Error:Execution failed for task ':auction-app:proguardRelease'.
> java.io.IOException: Can't read [/auction-app/build/intermediates/exploded-aar/paimai-android/share/unspecified/libs/libammsdk.jar(;;;;;;!META-INF/MANIFEST.MF)] (Can't process class [com/tencent/wxop/stat/al.class] (Unknown verification type [95] in stack map frame))
会在混淆一些第三方包的时候报错打包不成功,解决办法找到proguard源码中proguard\src\proguard\classfile\ClassConstants.java类,然后修改ATTR_StackMapTable的值,将原来的的StackMapTable改为dummy.重新打包进行替换原来的包,但是有点需要注意的时gradle 没有使用android 中的jar我以前一直替换SDK的jar导致始终不成功,C:\Users\用户\.gradle\caches\modules-2\files-2.1\net.sf.proguard\proguard-base\4.11\76730af417bb42da22b16e49f49e67863382b9bd\这是gradle使用jarde 路径进proguard-base-4.11.jar

3.还有一种就是如何针对打不同的包如何加载不同的String文件和icon图标,例如我想打一个别的如主包名+.area,你在src下创建area文件夹包含你所需要修改的信息。

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.12.+'
    }
}
apply plugin: 'android'

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
}

android {
    compileSdkVersion 20
    buildToolsVersion "21.1.2"
    useOldManifestMerger true 
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }
  
     //添加内容
  signingConfigs {
   myConfig {
        //绝对路径和相对路径都可以
        storeFile file("签名文件地址")
        //密码
        //storePassword System.console().readLine('Keystore password:' )//保密通过键盘输入密码
        storePassword "签名密码"
        //别名
        keyAlias "名称"
        //密码
        //storePassword System.console().readLine('keyAlias password:' )
       keyPassword "密码"
   }
  }
  buildTypes{
      release {
      //1.添加签名
      signingConfig  signingConfigs.myConfig
      //2.runProguard 执行混淆代码
      runProguard true
      //加载默认混淆配置文件 progudard-android.txt在sdk目录里面,不用管,proguard.cfg是我们自己配<span></span>的混淆文件
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
      }
 }
    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        } 
    area {   
            res.srcDirs = ['area\\res']
    }   
       
        // Move the tests to tests/java, tests/res, etc...
        instrumentTest.setRoot('tests')

        // Move the build types to build-types/<type>
        // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
        // This moves them out of them default location under src/<type>/... which would
        // conflict with src/ being used by the main source set.
        // Adding new build types or product flavors should be accompanied
        // by a similar customization.
        debug.setRoot('build-types/debug')
        release.setRoot('build-types/release')
    }  
    productFlavors {
    nationwide {
            packageName= "主包名"
        }
    area {
            packageName= "分支.area"
        }
    
    }
     lintOptions {
        abortOnError false
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值