首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Multidex记录一:介绍和使用

    当您的应用及其引用的库达到特定大小时,您会遇到构建错误,指明您的应用已达到 Android 应用构建架构的极限。...修改gradle配置文件 如果您的minSdkVersion 设置为 21 或更高值,您只需在模块级 build.gradle 文件中将multiDexEnabled 设置为 true,如此处所示: android...(this)来启用 Dalvik 可执行文件分包: public class MyApplication extends SomeOtherApplication { @Override protected...,在运行时可能导致程序的崩溃,这个主要是因为Dalvik linearAlloc 的一个限制,这个限制在 Android 4.0 (API level 14)已经增加了, 应用也有可能在低于 Android...' ... } } } 请记住,Gradle 会读取相对于 build.gradle 文件的路径,因此如果 multidex-config.txt 与 build.gradle

    1.7K10

    学(kao)习(bei)官方关于64k异常处理 ^_^

    通过 ProGuard 移除未使用的代码 为版本构建启用代码压缩以运行 ProGuard。启用压缩可确保交付的 APK 不含有未使用的代码。...可执行文件分包支持库具有一些已知的局限性,将其纳入APP应用构建配置之中时,我们应该注意这些局限性并进行针对性的测试: 启动期间在设备数据分区中安装 DEX 文件的过程相当复杂,如果辅助 DEX 文件较大,可能会导致应用无响应...' ... } } } 请记住,Gradle 会读取相对于 build.gradle 文件的路径,因此如果 multidex-config.txt 与 build.gradle...Application 子类(这样,只有适用于 API 级别 20 和更低版本的清单文件会扩展 MultiDexApplication 类或调用 MultiDex.install(this))。...(this) 以启用 Dalvik 可执行文件分包。

    97620

    Android 应用构建速度提升的十个小技巧

    小技巧 2: 避免激活旧版的 Multidex ? 这个小技巧大家应该比较熟悉——避免激活旧版的 multidex。当您的应用配置方法数超过 64K 的时候,您需要启用 multidex。...当您启用了 multidex,且工程的最低 API 级别在 21 之前时,旧版的 multidex 就会被激活,这将严重拖慢您的构建速度,原因是 21 之前的 API 级别并没有原生的支持 multidex...启用 multidex https://developer.android.google.cn/studio/build/multidex.html 如果您是通过 Android Studio 的运行/...调试按钮来执行构建,那么无需考虑这个问题,新版本的 Android Studio 会自动检测连接的设备和模拟器,如果系统的 API 级别大于 21 则进行原生的 multidex 支持,同时会忽略工程里对最低...为所有人启用构建缓存。

    95730

    Android Study 之学(kao)习(bei)官方关于64k异常处理 ^_^

    通过ProGuard移除未使用的代码 为版本构建启用代码压缩以运行 ProGuard。启用压缩可确保交付的 APK 不含有未使用的代码。...可执行文件分包支持库具有一些已知的局限性,将其纳入APP应用构建配置之中时,我们应该注意这些局限性并进行针对性的测试: 启动期间在设备数据分区中安装 DEX 文件的过程相当复杂,如果辅助 DEX 文件较大,可能会导致应用无响应...请记住,Gradle 会读取相对于 build.gradle 文件的路径,因此如果 multidex-config.txt 与 build.gradle 文件在同一目录中,以上示例将有效。...以下构建配置示例展示了如何在 Gradle 构建文件中设置这些定制: ?...Application 子类(这样,只有适用于 API 级别 20 和更低版本的清单文件会扩展 MultiDexApplication 类或调用 MultiDex.install(this))。

    83410

    android打包方法超过65k错误

    随着新的MultiDex支持库发布,Google正式为解决此问题提供官方支持。构建超过65K方法数的应用介绍了如何使用Gradle构建多DEX应用。...然后进行以下两步操作: 1.修改Gradle配置文件,启用MultiDex并包含MultiDex支持: ``` android { compileSdkVersion 21 buildToolsVersion...Multidex仍有一些限制: DEX文件安装到设备的过程非常复杂,如果第二个DEX文件太大,可能导致应用无响应。此时应该使用ProGuard减小DEX文件的大小。...当方法数量过多导致超出缓冲区大小时,会造成dexopt崩溃。...Multidex构建工具还不支持指定哪些类必须包含在首个DEX文件中,因此可能会导致某些类库(例如某个类库需要从原生代码访问Java代码)无法使用。

    62150

    Android 应用构建速度提升的十个小技巧

    应用的构建速度会直接影响开发效率,本文将带您通过改造一个 Android 应用: “Google 追踪圣诞老人 (Google Santa Tracker)” 来为大家提供十个小技巧,帮助提升应用的 Gradle...这是将 Android Gradle 插件版本从 2.x 更新到 3.0.0-alpha1 之后得到的结果 (这里的演示是基于 3.0.0-alpha1 版本,随着插件版本的更新,性能的提升会更加明显)...小技巧 2: 避免激活旧版的 Multidex ? 这个小技巧大家应该比较熟悉——避免激活旧版的 multidex。当您的应用配置方法数超过 64K 的时候,您需要启用 multidex。...当您启用了 multidex,且工程的最低 API 级别在 21 之前时,旧版的 multidex 就会被激活,这将严重拖慢您的构建速度,原因是 21 之前的 API 级别并没有原生的支持 multidex...为所有人启用构建缓存。

    93230

    Android 使用android-support-multidex解决Dex超出方法数的限制问题

    让我们看一下如何应用android-support-multidex.jar(以下都以在Anroid studio中的使用为例,使用eclipse开发需要安装gradle插件,其他基本上相同): 首先可以用...:0.1' }   MultiDex实现原理:         Apk在运行的时候,有一个dexpathlist,而Multidex的源码中,会根据你的系统版本号对dexpathlist...Multidex仍有一些限制: DEX文件安装到设备的过程非常复杂,如果第二个DEX文件太大,可能导致应用无响应。此时应该使用ProGuard减小DEX文件的大小。...当方法数量过多导致超出缓冲区大小时,会造成dexopt崩溃。...Multidex构建工具还不支持指定哪些类必须包含在首个DEX文件中,因此可能会导致某些类库(例如某个类库需要从原生代码访问Java代码)无法使用。

    1.5K80

    Android热更新之微信Tinker集成(接入Bugly热更新)

    ”文件中添加: // 依赖插件脚本 apply from: 'tinker-support.gradle' tinker-support.gradle内容如下所示: 注:需要在app module...构建基准包和补丁包都要指定不同的tinkerId,并且必须保证唯一性 // tinkerId = "base-1.0.4" tinkerId = "patch-1.0.4" // 是否启用覆盖...设置R.txt文件,通过旧apk文件保持ResId的分配 } } 第三步:初始化SDK enableProxyApplication = false 的情况(亲测这种) 图片上传失败...,你需要在dependencies中进行配置compile "com.android.support:multidex:1.0.1"才可以使用MultiDex.install方法; SampleApplicationLike...热更新,比这个的集成比较复杂,接入的时候微信Tinker还不支持加固,不满足公司的需求,过了一周后Tinker发布新版本,新版本支持加固,考虑到用原始的Tinker集成后,需要后台的配置才能测试,这样感觉会浪费很多的时间

    2K40

    dex分包变形记

    一、背景 就在项目灰度测试前不久,爆出了在 Android 3.0以下手机上安装时出现 INSTALL _ FAILED_DEXOPT,导致安装失败。...当方法数量过多导致超出缓冲区大小时,也会造成dexopt崩溃。...其实是因为如果用了这种 Gradle来构建,当应用构建时,构建工具会自动分析哪些类必须放在第一个 DEX 文件(主 dex),哪些类可以放在附加的 DEX 文件(从 dex)中,并将分析结果输出到 dx...LinearAlloc 的需求而造成 DexOpt 失败或者 Dalvik 虚拟机崩溃; 4)从 dex 不能太大,否则在运行时安装加载从 dex 的过程比较复杂和耗时,可能会导致应用程序无响应 (ANR...因为如果拆分后各自混淆,则必然会造成混淆后主、从 dex 引用类名的不一致,从而导致应用无法正常运行。

    1.7K110

    Android dex文件64k限制解决办法

    这些变化,除了会导致打包出的 APK 文件越来越大之外,当项目中java代码包含的方法数(method count)超出一个峰值时,编译过程中就会出现如下错误: 较早版本的编译系统中,错误内容如下: Conversion...为了解决 64K 方法数限制的问题,我们可以在项目中使用 multidex 配置,当项目中的方法数(包括:Android framework,library 和我们自己写的代码)超过 64K 时,编译系统会自动编译出多个...Config for Multidex With Gradle ---- Android Gradle 插件在 Android SDK Build Tools 21.1 及更高版本的编译工具上支持multidex...分割运算,导致增加项目的编译时间,从而影响开发人员的开发效率。...有关 flavors 的信息,以前写过一篇文章:Android 利用Gradle实现app的环境分离,更多信息可以参考英文手册:Gradle Plugin User Guide,对应中文版译文:Gradle

    1.2K20

    android用eclipse开发碰到65535问题的完美解决方案

    在开发的过程中,由于产品功能越来越多,导致第三方sdk引入过多,运行时出现65535的问题。先给大家普及一下65535是怎么回事: 在Android系统中,一个App的所有代码都在一个Dex文件里面。...但是这个链表的长度是用一个short类型来保存的,导致了方法id的数目不能够超过65536个。 官方推荐的解决办法是这样的:通过multidex包进行多dex编译的方法。...4.将android-support-multidex.jar文件配置到工程下。 5.配置applicaion重写attachBaseContext方法。...\support\multidex\library\libs)下找到android-support-multidex.jar这个文件 最好单独拷贝一份出来到一个目录下 ,然后工程上右键 build path...build --info 可能编译时间会有点长,耐心等待 ,倘若编译运行成功,会提示 Build  Success ,这是我们可以在工程的目录中发现多了两个文件夹 项目目录多了 build 和gradle

    60630

    工作总结之服务器时间不同步导致平台验证失败及Linux系统时间同步方法

    2.寻找前同事帮助 最后发现是时间不同步导致的。...系统时间会自动保存在BIOS时钟里面,启动计算机的时候,系统会自动在BIOS里面取硬件时间,以保证时间的不间断。但在Linux下,默认情况下,系统时间和硬件时间并不会自动同步。...在系统开机的时候,会自动从BIOS中取得硬件时间,设置为系统时间。 Linux系统时间同步方法 1....不同机器之间的时间同步 为了避免主机时间因为长期运行下所导致的时间偏差,进行时间同步(synchronize)的工作是非常必要的。Linux系统下,一般使用ntp服务器来同步不同机器的时间。...因为,ntpdate同步时间会造成时间的突变和跳跃,对一些依赖时间的程序和服务会造成影响。比如sleep,timer等。而且ntpd服务可以在修正时间的同时,修正CPU Tick。

    1.3K20
    领券