首页
学习
活动
专区
圈层
工具
发布

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

那么让我们看一下为什么会引起这种错误:         在Android系统中,一个App的所有代码都在一个Dex文件里面。Dex是一个类似Jar的存储了多有Java编译字节码的归档文件。...因为Android系统使用Dalvik虚拟机,所以需要把使用Java Compiler编译之后的class文件转换成Dalvik能够执行的class文件。...(2) 分割Dex,多工程: 把所需要的.class文件或者是Jar文件和一些源码一起编译生成一个Jar文件。然后使用Android SDK提供的dx工具把Jar文件转成Dex文件。...当然,Google看来也意识到了目前应用方法数爆棚的问题, 目前在已经在API 21中提供了通用的解决方案,那就是android-support-multidex.jar....选项设置与预编译的library工程有冲突,因此如果你的应用中包含引用的lirary工程,需要将预编译设置为false: android {   // ...

1.7K80
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    修复Android ROM的Google网络定位

    前言 一些定制、第三方 ROM 在安装了 Google 框架后,仍然无法使用其网络定位功能。我在网上搜索了许多资料,整理如下。 本文假设你的设备已经 Root,并已经安装了 Google 框架。...二、提取需要的资源 取出 ROM 中的 framework-res.apk,并反编译得到需要修改的文件: adb pull /system/framework/framework-res.apk apktool...如我的 ROM 默认只有 com.android.location.fused 和 com.amap.android.location 两项,这时应当加入 com.google.android.gms,...使得最终结果类似这样: com.google.android.gms...为 com.android.location.fused,虽然可能是不必要的) 四、应用修改 1、重新编译,并从结果中提取出需要的部分: apktool b framework-res unzip -

    3.5K20

    【字节码插桩】Android 打包流程 | Android 中的字节码操作方式 | AOP 面向切面编程 | APT 编译时技术

    文章目录 一、Android 中的 Java 源码打包流程 1、Java 源码打包流程 2、字符串常量池 二、Android 中的字节码操作方式 一、Android 中的 Java 源码打包流程 --...中的 Java 源码打包流程 : 参考 【Android 安装包优化】APK 打包流程 ( 文件结构 | 打包流程 | 安装流程 | 安卓虚拟机 ) 博客 ; ① 编译资源 R.java 源码 : 使用...apk 文件进行签名 , 生成签名后的文件 ; ⑦ 对齐 : 使用 zipalign 工具对签名后的 apk 文件进行对齐操作 ; 2、字符串常量池 XML 文件在编译时 , 会被编译成二进制文件...: 编译时技术 , 注解 , 注解处理器 , Android 依赖库 , 3 件套 ; 参考 Android APT 专栏 ; AOP 和 APT 都可以用于字节码插桩操作 : AOP 的插桩时机是....class 字节码文件打包为 .dex 文件过程中 ; APT 的插桩时机是 .java 文件编译成 .class 字节码文件时 , 进行的 , 编译时进行字节码插桩 ; ButterKnife ,

    1.3K10

    使用NDK下的GCC工具编译c代码至android设备中运行

    之前我们学过使用GCC子集之一arm-none-linux-gnueabi进行C代码编译,这次我们学习GCC另外一个子集arm-linux-androideabi,这是专门为android平台打造的一个...GCC编译环境,该工具被包含在Android NDK库当中 实验环境 windows宿主机 安卓模拟器(ARM架构+linux系统 已Root) android-ndk-r9b 实验开始 第一步 编写测试代码...: sys/cdefs.h: No such file or directory 这是因为缺少相应的依赖库导致的,在我们使用arm-none-linux-gnueabi时直接在命令行后面添加-static...=E:\android-ndk-r9b\platforms\android-19\arch-arm test.c -o main 此时编译通过,但是将生成的执行文件push到安卓设备上之后,却无法运行,...\platforms\android-19\arch-arm test.c -o main 此时程序可正常执行 使用arm-linux-androideabi生成的可执行文件大小为6kB 使用arm-none-linux-gnueabi

    2.9K41

    【Android 逆向】代码调试器开发 ( 使用 NDK 中的 ndk-build + Android.mk 编译 Android 平台的代码调试器可执行应用 )

    更详细的配置方法 , 参考 https://developer.android.google.cn/ndk/guides/android_mk#tiv 文档 ; 完整的 Android.mk 构建脚本...:= gnustl_static # 指定编译的 Android 平台 , 一般是 Android 兼容的最低版本 APP_PLATFORM := android-19 四、正式编译 -.../Application.mk 命令 , 编译 Android 平台的代码调试器 ; 其中 Y:/001_DevelopTools/002_Android_SDK/ndk/android-ndk-r14b-windows-x86..._64/android-ndk-r14b/ndk-build.cmd 是 android-ndk-r14b 版本 ndk 的 ndk-build.cmd 编译工具 , 注意不要用错版本 ; NDK_PROJECT_PATH...\libs\x86\hacktool 是编译出来可以在 x86 手机 , 也就是电脑上的 Android 模拟器中 , 可以运行的 Android 代码调试器 程序 ; 五、博客资源 ---- CSDN

    50920

    Android Wear 开发初探

    现在官方也推荐数据是通过Wifi或者3G/4G的方式来获取,而不是蓝牙。 目前Android Wear分国际版本和中国版本(据说到Android Wear 2.0正式发布时不分了,统一用一个库)。...国际版本在国内无法使用(原因众所周知)。当然使用的库也不一样(国内版本其实就是国际版本的阉割版)。但这个库只是在手机侧不一样,在手表侧的库是一样的,使用标准的Android Wear 库就可以。...手表侧: 这个与普通的Android 应用开发区别不大,需要注意在编译配置文件build.gradle中使用Android Wear库的版本要与手机侧版本相同,否则会出现版本不一致导致通讯失败(吐槽一下谷歌...Wear 2.0中主要新增的功能 增加Wifi及3G/4G通讯功能,完全摆脱依赖手机 ?...4.在手机侧应用的AndroidManifest文件中的标签中增加来指明qqmusic_for_android_wear_desc.xml文件,如下设置: android:name

    2.4K90

    【Android 逆向】修改 Android 系统文件 ( default.prop 配置信息 | 修改 default.prop 配置信息文件 )

    文章目录 一、default.prop 配置信息 二、修改 default.prop 配置信息文件 一、default.prop 配置信息 ---- 进入根目录 , 查看根目录下的信息 : 使用..., 获取的值 , 就是在 default.prop 中配置的属性值类型 , 注意这只是默认配置 , 不代表当前设备的真实配置 ; 通过调用 setprop 命令 , 可以修改上述属性 ; setprop...dalvik.vm.dex2oat-minidebuginfo=true debug.atrace.tags.enableflags=0 ro.error.receiver.system.apps=com.google.android.gms...ro.setupwizard.enterprise_mode=1 ro.atrace.core.services=com.google.android.gms,com.google.android.gms.ui..., 如游戏应用 , 防外挂 ; 就会检测 /default.prop 文件中的内容 , 该文件中的内容是可以被修改的 ; 首先 , 重新挂载分区 , 执行如下命令 : mount -o remount

    2K11

    google的GCM推送使用简介

    GCM服务器接收应用服务器的消息,然后再把消息转发给客户端,服务器端根据自己的需要实现xmpp或者http接口,和GCM服务器进行通信,客户端想要接收消息,需要使用GCM提供的API。...二.客户端使用GCM 1.使用限制: a.最低要求Android 2.2+的设备,并且安装了Google应用商店 b.想要使用GCM新特性,要求Android 2.3+ c.低于Android 4.0.4...plugin: 'com.google.gms.google-services' (3)添加GCM依赖 代码中需要用到gcm的api,因此需要添加gcm的依赖,版本请使用最新的版本,下面只是示范 dependencies...4.4之前的版本,需要在receiver中添加的intent-filter中添加下面的action android:name="com.google.android.c2dm.intent.REGISTRATION...上面的处理可以最好用一个IntentService来异步处理,不要放在主线程中,上述给一个使用范例而已。

    7.1K10

    Android终于要推出Google官方的二维码扫描库了?

    这里我要问大家一个问题,你们都是如何在自己的App中加入二维码扫描功能的呢? 相信会有一大部分朋友说,使用的是ZXing或者ZBar这种开源库。...就在不久之前,我收到了一封Google发来的邮件,内容如下: 当我看到邮件里提到了Google官方要推出一个二维码、条形码扫描库时,我立刻被吸引到了,并且跟Google表达了我想尝鲜的意愿。...mkdir -p ~/.m2/repository cd ~/.m2/repository unzip 接下来在Android Studio中创建一个新的项目...implementation 'com.google.android.gms:play-services-code-scanner:16.0.0-eap1' } 到这里为止,我们就成功将Google的这个二维码扫描库集成到我们项目当中了...完整版本的集成文档我也讨来了,链接如下: https://developers.google.com/ml-kit/vision/barcode-scanning/android 上述文档中还包含了如何从一张图片

    2.2K31

    应用迁移至 Android P 操作指南

    更新到 P 并增加 Android P 中提供的新功能来实现对 Android P (API 级别 P) 的全面支持。...获取 Android P SDK 您可以使用 Android Studio 3.1 或更高版本获取 SDK 包,以便利用 Android P (API 级别 P) 构建应用。...如果您暂时不需要 Android P 中的新功能,只想针对该平台版本进行编译,您可以使用 Android Studio 3.1。...测试 Android P 应用 完成以上准备工作后,您就可以构建应用,然后对其做进一步测试,以确保 Android P (API 级别 P) 为目标平台时它能正常工作。...△ 表 2. targetSdkVersion 设置为 “P” 时影响应用的关键变化 要想探究 Android P (API 级别 P) 提供的新功能和新 API,请查看 Android P 功能和 API

    92520

    ​openssl Android编译指南

    可以正常加载so, 我们改变生成so的名字. so的版本号在版本管理时还是很有用的, 所以我们生成的so命名格式为libcrypto.1.1.so, 这样既有版本号, 也不影响Android正常加载....编译前需要安装的工具 perl make ndk 最好在Linux/MacOS下编译, 在Windows下编译最好使用MSYS2, Windows下编译官网没有正式测试....目前Android在ndk r18里移除了gcc, 在ndk r19里不再推荐Standalone Toolchains, 所以这里我们裸用clang来进行编译. 使用的ndk为r18b....同时笔者喜欢使用ripgrep替代grep, 在一些辅助命令中, 你可能会看到rg. 3. 配置和编译 Android是跨平台编译, 你应该使用./Configure而不是./config....NDK通常支持多个Android API级别, 你可以在android-ndk-/platforms下面找到所有支持的API级别, 如android-14, android-21.

    7.2K40

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

    注:如果项目配置时所面向的 Dalvik 可执行文件分包使用的是 minSdkVersion 20 或更低版本,并且将其部署到运行 Android 4.4(API 级别 20)或更低版本的目标设备上,则...二、Android 5.0 及更高版本的 Dalvik 可执行文件分包支持 Android 5.0(API 级别 21)及更高版本使用名为 ART 的运行时,后者原生支持从 APK 文件加载多个 DEX...ART 在应用安装时执行预编译,扫描 classesN.dex 文件,并将它们编译成单个 .oat 文件,供 Android 设备执行。...如果APP目标 API 级别低于 14,请务必针对这些版本的平台进行测试,因为应用可能会在启动时或加载特定类群时出现问题。...尽管 Android 4.0(API 级别 14)提高了分配限制,但在 Android 5.0(API 级别 21)之前的 Android 版本上,应用仍有可能遭遇这一限制。

    1.2K20

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

    注:如果项目配置时所面向的 Dalvik 可执行文件分包使用的是 minSdkVersion 20 或更低版本,并且将其部署到运行 Android 4.4(API 级别 20)或更低版本的目标设备上,则...二、Android 5.0 及更高版本的 Dalvik 可执行文件分包支持 Android 5.0(API 级别 21)及更高版本使用名为 ART 的运行时,后者原生支持从 APK 文件加载多个 DEX...ART 在应用安装时执行预编译,扫描 classesN.dex 文件,并将它们编译成单个 .oat 文件,供 Android 设备执行。...如果APP目标 API 级别低于 14,请务必针对这些版本的平台进行测试,因为应用可能会在启动时或加载特定类群时出现问题。...尽管 Android 4.0(API 级别 14)提高了分配限制,但在 Android 5.0(API 级别 21)之前的 Android 版本上,应用仍有可能遭遇这一限制。

    1.1K10
    领券