android studio 打正式包的各种坑

android studio 打正式包的各种坑

遇到的问题

1.release-stripped.ap_' specified for property 'resourceFile' does not exist.

原因:
Gradle2.0以上版本minifyEnabled字段为true时已经包含了shrinkResources,即在代码优化时会自动去掉多余资源,所以在打正式包时也不需要设置shrinkResources字段。

解决:

buildTypes {
    release {
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        // 不显示Log
        buildConfigField "boolean", "LOG_DEBUG", "false"
        minifyEnabled false
        zipAlignEnabled true
        // 移除无用的resource文件
        shrinkResources false// 此处修改成false
        signingConfig signingConfigs.config
    }
}

这是暂时的解决方案,把移除无用resource文件的功能去掉,对于应用的安装包,以及性能是有影响的。代替这个功能的方式可以使用:使用Android studio自带的代码规范检查功能 inspect code

2. Error: Expected resource of type id [ResourceType]

原因:
我是因为程序里有有一些资源文件的引用用的是16进制代替
解决:

android {
 lintOptions {
    disable "ResourceType"
  }
}
3. Cannot merge new index 66195(方法数量) into a non-jumbo instruction(64k问题)

原因:

最新的ADT和SDK Tool在将jar转化成dex的时候,可能会合并类的代码,这将导致巨大的类;类中的每一个方法都分配有一个id,字节码中以id标识和调用方法;早期的Dalvik VM内部使用short类型变量来标识方法的id,最大值限制在65535;综合上述因素,代码在安装的时候,不能通过验证,所以安装失败。

解决:

android {
 lintOptions {
        //解决64k问题,方法数不能超过65535个
        jumboMode true
  }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值