AndroidStudio中的 multidex 的 Dex分包步骤
来源:互联网 发布:mac怎么查找文件路径 编辑:程序博客网 时间:2024/06/14 09:12
1.
2.
3.
以下是文件内容:
1.gradle
apply plugin: 'com.android.application'android { compileSdkVersion 26 buildToolsVersion "26.0.1" defaultConfig { applicationId "com.redoor.a2" minSdkVersion 16 targetSdkVersion 26 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" multiDexEnabled true } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }}afterEvaluate { tasks.matching { it.name.startsWith('dex') }.each { dx -> if (dx.additionalParameters == null) { dx.additionalParameters = ['--multi-dex'] } else { dx.additionalParameters += '--multi-dex' } }}dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:26.+' compile 'com.android.support.constraint:constraint-layout:1.0.2' testCompile 'junit:junit:4.12' compile 'com.android.support:multidex:1.0.0'}
2.application:
import android.app.Application;import android.content.Context;import android.support.multidex.MultiDex;public class App extends Application { @Override public void onCreate() { super.onCreate(); } protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); }}
3.多个方法的文件:
main文件链接: https://pan.baidu.com/s/1ck3p5k 密码: 6nrd
=============================注意 在打包(运行项目)的时候Android studio会报错==============================
Error:FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:transformClassesWithMultidexlistForDebug'.
> java.io.IOException: Can't read [F:\work\myAndroidStudio_WorkSpace20170911\RCS\app\build\intermediates\transforms\jarMerging\debug\jars\1\1f\combined.jar] (Can't process class [com/zte/modp/util/algorithm/a.class] (Unknown verification type [12] in stack map frame))
* Try:
Run with --stacktrace option to get the stack trace. Run with --debug option to get more log output.
说明:我自己苦苦调试了一天---是亲自-我本人,终于整好了:我使用的是Androidstudio 2.3.3 版
1.在androidstudio安装目录下的
路径为D:\AndroidSoft\AndrodiStudio\androidstudio\gradle\m2repository\net\sf\proguard\proguard-base
【附图1】
2.根据AndroidStudio所使用的proguard版本去官网上下载源码,【注:都下载试了,你也不知道你的studio 的使用的proguard是哪个版本】
地址为:https://sourceforge.net/projects/proguard/files/proguard/
【附图2】
【附图3】
3.下载好proguard后,解压,在src\proguard\classfile文件当中找到源码的ClassConstant.java类,
然后将ATTR_StackMapTable 的值修改成 "dummy"(原值为StackMapTable),
【附图4】
4.下载的proguard源码里面没有:ant文件夹、proguard-android.txt、proguard-android-optimize.txt、proguard-project.txt文件,到自己下载sdk文件夹里面复制过来-见附图5【复制到你解压的文件夹目录下:见附录图6】;
【附图-6】
5.使用ant 进行重新打包(我之前已经安装过ant ,这里是复制别人的)
(一)安装ant
到官方主页http://ant.apache.org下载新版(目前为Ant1.9.9)的ant,得到的是一个apache-ant-1.9.4-bin.zip的压缩包。将其解压到你的硬盘上。
下载地址如图:附图7-附图8
【附图-7】
【附图-8】
(二)配置环境变量
window中设置ant环境变量:
ANT_HOME C:/ apache-ant-1.9.9
path %apache-ant-1.9.9%\bin;%JAVA_HOME%\bin;
classpath %apache-ant-1.9.9%\lib;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
注意:
配置环境变量:我的电脑----属性-----高级----环境变量
由于path和classpath都有可能已经配置了jdk,所以我们要找到path和classpath添加上去,而不要新建,否者会覆盖,导致无法找到jdk,如果变量找不到,就不要用变量,直接贴上地址就行了,不懂留言
(三)验证ant
为了验证ant是否成功安装,可以进行如下操作:
依次选择:开始->运行->cmd,输入如下命令:ant
如果出现如下内容,说明安装成功:
Buildfile: build.xml does not exist!
Build failed
(四)运行ant打包proguard
a.在下载的proguard5.3.2(上面已经处理过的文件)的buildspcrit【重命名为:build】 文件夹,并打开build【见附图-9】
【附图-9】
b.在标题栏输入:cmd并【回车】:如附图-10;
然后在命令栏里面输入ant并【回车】【如附图-11】便会在【D:\搜狗高速下载\proguard5.2.1\lib\】目录下重新生成新的的proguard.jar文件:如c步骤的附图-12
【附图-10】
【附图-11】
c-1.在【D:\搜狗高速下载\proguard5.2.1\lib\】里面找到proguard.jar文件【附图12】,
c-2.将文件【D:\搜狗高速下载\proguard5.2.1\lib\proguard.jar】重名为你AndroidStudio 中的【proguard-base-5.3.2.jar】这个名字【如附图13】,
c-3.并copy和覆盖AndroidStudio中的【proguard-base-5.3.2.jar】文件:如附图-13
【附图-12】
【附图-13】
d.将打包好的文件覆盖掉原来的文件,注意还要在覆盖缓存当中的文件,路径为
C:\Users\A\.gradle\caches\modules-2\files-2.1\net.sf.proguard\proguard-base\4.11\76730af417bb42da22b16e49f49e67863382b9bd
【注:这一步‘d’ 你找不到这个文件,就不用替换了,我也没找到】
e.这个版本的5.3.2的proguard 的文件你替换好了,接下来运行AndroidStudio的项目,你看看行不行;
如果还继续报上面那个错误,那就按照上面的操作,将另外的proguard 的【proguard-base-?.?.?.jar】也替换掉,总之替换完,肯定可以;
下面是我自己生成的文件:
proguard-base-5.3.2.jar 链接: https://pan.baidu.com/s/1kVabCI7 密码: e1fc
proguard-base-5.2.1.jar 链接: https://pan.baidu.com/s/1gfF1nft 密码: pdi6
版权保留:请备注我的blog:谢谢,不容易啊:http://blog.csdn.net/a2241076850/article/details/77942633
- AndroidStudio中的 multidex 的 Dex分包步骤
- dex分包方案概述与multidex包的配置使用
- dex分包方案概述与multidex包的配置使用
- dex分包之--------multidex包的配置使用
- multiDex分包时指定主dex的class列表
- Android中的dex分包
- Android中的dex分包
- Android中的dex分包
- multidex分包续:将指定的类打包到主dex中
- multidex分包续:将指定的类打包到主dex中
- MultiDex分包
- 简单的AndroidStudio分包
- 解决使用multidex分包后找不类的问题
- Dex分包
- Dex分包
- Android分包MultiDex
- Android分包(Multidex)
- Android分包方案multidex
- webpack2学习笔记<演示示例>
- 一、Java窗体设置
- 用反射改变属性的值
- UIView的部分圆角
- 循环与数组2
- AndroidStudio中的 multidex 的 Dex分包步骤
- git 删除分支和删除文件夹
- Linux中不同格式软件包的安装要点
- FFMPEG源码下载和对应windows下DLL库下载使用
- Kruskal最小生成树算法
- 欢迎使用CSDN-markdown编辑器
- Spring与JMX集成
- Linux内核模块简介
- 写博客目的