Android 64k 方法限制 56k 方法错误

2023-12-11

我在我的 Android 项目中收到此错误:

Unable to execute dex: method ID not in [0, 0xffff]: 65536
Conversion to Dalvik format failed: Unable to execute dex: method ID not in [0, 0xffff]: 65536

根据我的所有研究,这是由于我的 android 项目中有太多方法 - 限制为 64k。不过,我已经运行脚本来计算项目中当前有多少个方法,并且它提出了 56k 个方法。Here是我正在运行的脚本。

我的项目唯一的补充是我将 Parse 从 1.4 更新到了 1.7。

该项目在更新解析后构建并编译,但是当我尝试添加任何新代码时,会出现此错误。

当我第一次遇到这个错误时,我正在使用 Android Studio 0.8.9。我已经恢复到 Android Studio 0.8.6,但它仍然发生。


我用这段代码解决了这个问题,我的问题是谷歌播放服务使我的应用程序超出了限制。这会删除您的应用程序不需要的 Google Play 服务。将其放在 gradle 构建文件的底部

def toCamelCase(String string) {
String result = ""
string.findAll("[^\\W]+") { String word ->
    result += word.capitalize()
}
return result
}

afterEvaluate { project ->
    Configuration runtimeConfiguration = project.configurations.getByName('compile')
    ResolutionResult resolution = runtimeConfiguration.incoming.resolutionResult
    // Forces resolve of configuration
    ModuleVersionIdentifier module = resolution.getAllComponents().find { it.moduleVersion.name.equals("play-services") }.moduleVersion

String prepareTaskName = "prepare${toCamelCase("${module.group} ${module.name} ${module.version}")}Library"
File playServiceRootFolder = project.tasks.find { it.name.equals(prepareTaskName) }.explodedDir

Task stripPlayServices = project.tasks.create(name: 'stripPlayServices', group: "Strip") {
    inputs.files new File(playServiceRootFolder, "classes.jar")
    outputs.dir playServiceRootFolder
    description 'Strip useless packages from Google Play Services library to avoid reaching dex limit'

    doLast {
        copy {
            from(file(new File(playServiceRootFolder, "classes.jar")))
            into(file(playServiceRootFolder))
            rename { fileName ->
                fileName = "classes_orig.jar"
            }
        }
        tasks.create(name: "stripPlayServices" + module.version, type: Jar) {
            destinationDir = playServiceRootFolder
            archiveName = "classes.jar"
            from(zipTree(new File(playServiceRootFolder, "classes_orig.jar"))) {
                exclude "com/google/ads/**"
                exclude "com/google/android/gms/analytics/**"
                exclude "com/google/android/gms/games/**"
                exclude "com/google/android/gms/plus/**"
                exclude "com/google/android/gms/drive/**"
                exclude "com/google/android/gms/ads/**"
            }
        }.execute()
        delete file(new File(playServiceRootFolder, "classes_orig.jar"))
    }
}

project.tasks.findAll { it.name.startsWith('prepare') && it.name.endsWith('Dependencies') }.each { Task task ->
    task.dependsOn stripPlayServices
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 64k 方法限制 56k 方法错误 的相关文章

  • Android 启动器快捷方式

    我制作了一个简单的打卡 打卡时钟应用程序 我想向用户添加在主屏幕上创建快捷方式的选项 该快捷方式将切换应用程序的状态 超时 超时 但我根本不希望此快捷方式在屏幕上打开应用程序 这是我的 setupShortcut private void
  • 如何将文件透明地传输到浏览器?

    受控环境 IE8 IIS 7 ColdFusion 当从 IE 发出指向媒体文件 例如 mp3 mpeg 等 的 GET 请求时 浏览器将启动关联的应用程序 Window Media Player 我猜测 IIS 提供文件的方式允许应用程序
  • Android相机意图:如何获取全尺寸照片?

    我正在使用意图来启动相机 Intent cameraIntent new Intent android provider MediaStore ACTION IMAGE CAPTURE getParent startActivityForR
  • Android Studio:无法启动守护进程

    当我尝试在 Android Studio 中导入 gradle 项目时 遇到以下错误 Unable to start the daemon process This problem might be caused by incorrect
  • 如何在不更改手机语言的情况下更改Android应用程序语言?

    我希望用户在应用程序内选择一种语言 选择语言后 我希望字符串使用特定语言 如果我更改手机语言 那么我的应用程序将以设置的语言运行 我无法找到任何在不更改手机语言的情况下设置语言的方法 此外 一旦设置了语言 更改就应该反映出来 有人可以建议一
  • Android 设备上的静默安装

    我已经接受了一段时间了 在 Android 上静默安装应用程序是不可能的 也就是说 让程序安装捆绑为 APK 的应用程序 而不提供标准操作系统安装提示并完成应用程序安装程序活动 但现在我已经拿到了 Appbrain 快速网络安装程序的副本
  • 如何将设备连接到Eclipse?

    我无法解决这个简单的问题 我正在尝试通过 USB 电缆将我的设备连接到 Eclipse 在我的 PC 上 我已经安装了 Eclipse 和 Android SDK 并且在模拟器上运行该程序运行良好 我已在我的电脑上下载并安装了 Samsun
  • 通过 ADB 拔出设备:“找不到服务”

    我必须测试我的应用程序在打瞌睡模式下的行为 根据文档 https developer android com training monitoring device state doze standby html testing doze 我
  • 下载后从谷歌照片库检索图像

    我正在发起从图库中获取照片的意图 当我在图库中使用 Nexus 谷歌照片应用程序时 一切正常 但如果图像不在手机上 在 Google Photos 在线服务上 它会为我下载 选择图像后 我将图像发送到另一个活动进行裁剪 但在下载的情况下 发
  • 应用程序关闭时的倒计时问题

    我制作了一个 CountDownTimer 代码 我希望 CountDownTimer 在完成时重新启动 即使应用程序已关闭 但它仅在应用程序正在运行或重新启动应用程序时重新启动 因此 如果我在倒计时为 00 10 分钟 秒 时关闭应用程序
  • Android - 将 ImageView 保存到具有全分辨率图像的文件

    我将图像放入 ImageView 中 并实现了多点触控来调整 ImageView 中的图像大小和移动图像 现在我需要将调整大小的图像保存到图像文件中 我已经尝试过 getDrawingCache 但该图像具有 ImageView 的大小 我
  • 运行 Jar 文件时出现问题

    我已将 java 项目编译成 Jar 文件 但运行它时遇到问题 当我跑步时 java jar myJar jar 我收到以下错误 Could not find the main class myClass 类文件不在 jar 的根目录中 因
  • SharedFlow 和 StateFlow 的主要区别

    两者有什么区别共享流 and 状态流 以及如何使用这些MVI建筑学 使用简单更好吗Flow或者这些作为状态和事件 Flow 是冷的 意味着它仅在收集数据时才发出数据 另外Flow不能保存数据 可以把它看成是水在里面流动的管道 Flow中的数
  • Android:有没有办法以毫安为单位获取设备的电池容量?

    我想获取设备的电池容量来进行一些电池消耗计算 是否可以以某种方式获取它 例如 三星 Galaxy Note 2 的电池容量为 3100mAh 谢谢你的帮助 知道了 在 SDK 中无法直接找到任何内容 但可以使用反射来完成 这是工作代码 pu
  • Android JNI C 简单追加函数

    我想制作一个简单的函数 返回两个字符串的值 基本上 java public native String getAppendedString String name c jstring Java com example hellojni He
  • 如何修复“sessionFactory”或“hibernateTemplate”是必需的问题

    我正在使用 Spring Boot JPA WEB 和 MYSQL 创建我的 Web 应用程序 它总是说 sessionFactory or hibernateTemplate是必需的 我该如何修复它 我已经尝试过的东西 删除了本地 Mav
  • KeyPressed 和 KeyTyped 混淆[重复]

    这个问题在这里已经有答案了 我搜索过之间的区别KeyPressedand KeyTyped事件 但我仍然不清楚 我发现的一件事是 Keypressed 比 KeyTyped 首先被触发 请澄清一下这些事件何时被准确触发 哪个适合用于哪个目的
  • 如何将图像从 Android 应用程序上传到网络服务器的特定文件夹中

    如何将图像从 android 移动到 Web 服务器上的指定文件夹 这是我的安卓代码 package com example bitmaptest import java io ByteArrayOutputStream import ja
  • 在 Android 中,如何将字符串从 Activity 传递到 Service?

    任何人都可以告诉如何将字符串或整数从活动传递到服务 我试图传递一个整数 setpossition 4 但它不需要 启动时总是需要 0 Service 我不知道为什么我不能通过使用 Service 实例从 Activity 进行操作 publ
  • javax.persistence.Table.indexes()[Ljavax/persistence/Index 中的 NoSuchMethodError

    我有一个 Play Framework 应用程序 并且我was使用 Hibernate 4 2 5 Final 通过 Maven 依赖项管理器检索 我决定升级到 Hibernate 4 3 0 Final 成功重新编译我的应用程序并运行它

随机推荐

  • 使用 pascal (innosetup) 获取文件的最后更新时间

    在 innosetup 脚本的卸载部分中 我想添加一个检查来查看特定文件的上次更新日期时间是否发生在最近 10 分钟内 有谁知道 innosetup 兼容的 pascal 代码吗 您可以使用Windows API函数GetFileAttri
  • 如何在 Tkinter 中更新此文本框的文本?

    所以我正在用 tkinter 在 python 中制作秒表 我有用于更新工作时间的循环 但我有它 因此循环会清除文本框 然后用新数字更新文本框 虽然它不起作用 但由于某种原因它只是没有清除它 它只是不断地向框中添加数字 这是我使用过的代码
  • Java 强制转换为超类并调用重载方法

    abstract class A int met A a return 0 int met B b return 1 int met C c return 2 class B extends A int met A a return 3 i
  • 如何对 UITextField 设置字符限制

    我想对 UITextField 设置字符限制 但不知道如何操作 我希望它最多包含 16 个字符 我该怎么做呢 BOOL textField UITextField textField shouldChangeCharactersInRang
  • “复制本地”和项目参考的最佳实践是什么?

    我有一个很大的 C 解决方案文件 100 个项目 并且我正在尝试缩短构建时间 我认为 复制本地 在很多情况下对我们来说都是浪费 但我想知道最佳实践 在我们的 sln 中 应用程序 A 依赖于程序集 B 而程序集 B 又依赖于程序集 C 在我
  • Ruby:如何处理带有“坏逗号”的 CSV 文件?

    我需要处理来自 FedEx com 的包含运输历史记录的 CSV 文件 不幸的是 FedEx 似乎并没有实际测试其 CSV 文件 因为它没有引用其中包含逗号的字符串 例如 公司名称可能是 Dog Widgets Inc 但 CSV 不引用该
  • C语言中删除给定字符串前面的空格和制表符

    什么 C 函数 如果有 可以从字符串中删除所有前面的空格和制表符 在C中 字符串由指针标识 例如char str 或者可能是一个数组 无论哪种方式 我们都可以声明自己的指针 该指针将指向字符串的开头 char c str 然后我们可以让指针
  • 如果使用授权承载令牌,则 400 错误请求

    我正在使用 PostMan 来解决我的 Angular NodeJS 应用程序中的奇怪 400 错误 我正在尝试获取https example com login html并且请求有两个标头 Authorization Bearer eyJ
  • 如何从排队作业中检索构建参数?

    我想编写一个系统常规脚本 它检查 Jenkins 中排队的作业 并提取在安排作业时提供的构建参数 以及构建原因作为奖励 有想法吗 具体来说 def q Jenkins instance queue q items each println
  • jQuery:高度()/宽度()和“显示:无”

    我一直认为有的元素display noneCSS 样式返回 0height and width 但在这个例子中 HTML div style display none a div CSS alert target height 他们不 ht
  • 如何让 boost json 使用正确的数据类型

    When I put value使用 int 它被写为字符串 有谁知道如何让它作为 int 打印 include
  • Google Apps 脚本:如何在 google 文档中查找 listItem 对象并向其插入项目?

    继文档样本 我正在尝试创建一个函数来搜索 Google 文档中的编号列表 如果找到它 则将一个新项目添加到该列表中 但我收到这个错误 Cannot find method setListId string line 21 file test
  • R中的邻近空间过滤

    我有一个物种的出现点 并且我想消除潜在的采样偏差 其中某些区域的点密度可能比其他区域大得多 实现此目的的一种方法是最大化彼此之间不小于特定距离 X 的点的子集 本质上 我会防止点彼此太接近 是否有任何现有的 R 函数可以执行此操作 我搜索了
  • 如何在 HTML5 上淡入/淡出音频

    我正在创建一个简单的背景音乐 它只有一个按钮来播放和停止音乐 但我想为其添加淡入淡出 但不起作用 My code var beepTwo musicBeat 0 beepTwo play dan click function if beep
  • 使用 CSS 更改 DOM 元素顺序(Crocodoc)[重复]

    这个问题在这里已经有答案了 是否可以使用 CSS 更改 DOM 元素顺序 我有一个 iframe 我想在其中更改工具栏above to belowiframe 的主要内容 所以由此可知 div div div div div div To
  • 如何将 #define 字符串文字转换为宽字符串文字? [复制]

    这个问题在这里已经有答案了 可能的重复 如何使用 C 预处理器将连接字符串转换为宽字符 我有一个使用 define 定义的字符串文字 define B 1234 0 如何使用这个定义在编译时获取这个宽字符串文字 L 1234 0 只是 de
  • 正则表达式 - 是否可以找到重叠的组?

    我是正则表达式的新手 只是想知道是否可以在匹配中找到 重叠 组 假设以下字符串 20122 0029431 7094 0111 5890 我现在想要所有匹配项 4 个数字 空格 数字 空格 4 个数字 我尝试的是这样的 0 9 4 s 0
  • 如何在 Scala 中将列表分组为元组分组项?

    例如我如何转换 val list 1 to 10 toList into List 1 2 3 4 5 6 7 8 9 10 您可以使用groupedList类的方法 http www scala lang org api current
  • Touch ID 的 VoiceOver 辅助功能标签

    我正在努力确保我正在开发的 iOS 应用程序可以访问 并正在尝试实现 VoiceOver 来确保这一点 我找不到任何帮助的一件奇怪的事情是何时显示 Touch ID 视图 在我的情况下是登录应用程序 VoiceOver 将 ID 发音为单词
  • Android 64k 方法限制 56k 方法错误

    我在我的 Android 项目中收到此错误 Unable to execute dex method ID not in 0 0xffff 65536 Conversion to Dalvik format failed Unable to