Android Studio gradle 构建问题:局部变量类型不匹配

2024-01-02

当我试图在互联网上找到解决方案时,但与我的情况没有太多相关

接下来的问题是,构建失败并出现错误: 错误:未捕获的翻译错误:com.android.dx.cf.code.SimException:局部变量类型不匹配:尝试使用 int 类型的局部变量设置或访问 java.lang.Object 类型的值。这是忽略局部变量信息的 .class 转换工具的症状。

我有2个配置

buildTypes {
debug {
    debuggable true
    minifyEnabled true
    signingConfig signingConfigs.defaultKey
    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}

release {
    debuggable false
    minifyEnabled true
    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}

}

问题是,如果我关闭调试混淆器(minifyEnabled false),我会遇到构建问题

Error:Uncaught translation error: com.android.dx.cf.code.SimException: local variable type mismatch: attempt to set or access a value of type java.lang.Object using a local variable of type int. This is symptomatic of .class transformation tools that ignore local variable information.
Error:Uncaught translation error: com.android.dx.cf.code.SimException: local variable type mismatch: attempt to set or access a value of type int using a local variable of type android.util.SparseIntArray. This is symptomatic of .class transformation tools that ignore local variable information.

由于启用了 proguard,Inta-Run 被禁用

所以无论我做什么我都无法超越这一点,即使我创建单独的 proguard 文件(调试一个) 并放置下一个:

-renamesourcefileattribute SourceFile
-keepattributes SourceFile,LineNumberTable
-dontobfuscate
-dontoptimize
-dontpreverify
-ignorewarnings

变得相同,尝试使用:multiDexEnabled true 但仍然没有成功 在这种情况下,启用混淆器后,我可以构建,正常进行调试/发布,并且除调试之外的所有工作(我非常需要)

这是我连续第二天遇到问题并且无法解决它 有人有类似的问题吗?我怎样才能解决它?

附: 带有堆栈跟踪和调试标志的 gradle 没有给我任何有用的东西,所以没有帮助


如果我正确理解您的问题,那么您只有在禁用时才会遇到问题ProGuard在您的调试版本中。

这表明您的某个依赖 jar 尚未正确构建并且包含局部变量表 or 局部变量类型表属性无效,导致出现问题中所示的错误。

启用 ProGuard 后看不到该问题的原因是 ProGuard 默认会删除相关属性(除非您添加-keepattributes xxx配置)。

要解决此问题,您需要确定哪个 jar 导致该问题并获取它的正确版本(通过使用 ProGuard 自行处理以删除 LocalVariable 表或获取正确构建的更新版本)。

有时问题是由 ProGuard 优化过的 jar 引起的。已知一种特定的优化技术存在问题,应该对库禁用(-优化!代码/分配/变量).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android Studio gradle 构建问题:局部变量类型不匹配 的相关文章

  • Google Play Console - 管理第一个应用程序发布的发布

    根据通过托管发布控制何时发布应用程序更改 https support google com googleplay android developer answer 9859654 hl enPlay 管理中心帮助中的页面 托管发布仅适用于更
  • startActivity 无法在 fcm 中的 onMessageReceived 内工作

    我知道有很多帖子讨论这个问题 我已经尝试了该线程上的几乎所有解决方案 但不幸的是这对我的情况不起作用 基本上 我想做的是 我想在之后立即开始一项活动onMessageReceived被调用而不发出通知 这是我的代码 override fun
  • Android + PhoneGap拦截URL(相当于iOS的shouldStartLoadWithRequest)

    我的 PhoneGap 包装的 本地托管的 Sencha Touch 应用程序会进行一些虚假的 URL 回调来与本机包装器进行通信 IE app callback do function a 在iOS中我实现了以下内容 BOOL webVi
  • android下拉刷新列表视图出错

    我正在使用功能下拉来刷新library https github com chrisbanes Android PullToRefresh克里斯班斯的 但是当我尝试在我的 xml 文件中导入这个小部件时 它向我显示以下错误 请帮助我如何解决
  • 在 Eclipse 中打开 Android XML 布局的快捷方式

    例如 如果我有类似的东西 setContentView R layout activity main 有没有快捷方式可以打开activity main xml 如果没有 有没有办法创建一个 Its there Just hold Ctrl
  • Android:在服务器端验证应用程序的完整性

    我正在编写一个通过 HTTPS 与服务器应用程序进行通信的 Android 应用程序 在服务器端 我必须绝对确定 Android 应用程序的完整性 这意味着服务器应用程序需要确保它与我开发的 Android 应用程序通信 而不是与重写的应用
  • java.io.IOException:服务发现失败

    我正在开发一个 Android 应用程序 在两部配对的智能手机之间使用蓝牙连接 蓝牙逻辑基于著名的BluetoothChat SDK示例 管理服务器线程的 服务 类accept 一个客户端线程connect 和一个用于在套接字上读 写的线程
  • 片段替换现有片段

    我有 MainActivity 它包含 ListFragment 和框架布局 我可以在项目单击时更改列表上的片段 我在更换现有产品时遇到问题Fragment1与新的Fragment2 单击按钮时Fragment1 Fragment2应该取代
  • 从 Android 上的 .net Web 服务获取列表

    我有 net Web 服务 我想在 android 上使用它 这个网络服务的方法返回List Of String 但我在android上没有得到响应 我能做些什么 这是代码 我已经研究了 3 天 但还没有找到任何解决方案 简而言之 我需要来
  • android - 自动检测未使用的绘图

    问题是 我在开发 Android 应用程序时使用了许多图标和图片 后来我替换了其中的许多图标和图片 但保留了旧的 以防我需要再次使用它们 我现在有大量我的 png 的drawable文件夹中 许多现在都未使用 手动整理它们需要很长时间 有没
  • Android 自定义进度条不旋转

    我想更改默认动画ProgressBar 所以我在我的主题中添加了自定义样式 样式 xml 我在我的内部调用这种风格ProgressBar具有以下内容 进度条 xml
  • 从处理程序取消 AsyncTask 及其进度条

    我想取消几秒钟后向服务器发送数据的 AsyncTask 我已经设置了 AsyncTask 和处 理程序 但进度对话框仍然旋转 我怎样才能尽快干净地停止AsyncTask 这就是我到目前为止所拥有的 提前致谢 private class As
  • Android 定期运行任务

    我想在 android 活动中定期运行一个方法 该方法会在 x 秒后更新某个字段 我知道它可以在timerTask中完成 但是最好的方法是什么 代码示例会很有帮助 你应该使用Handler和它的postDelayed功能 您可以在这里找到示
  • Android Studio 3.1 中任务“:app:transformClassesWithAndroidGradleClassShrinkerForDebug”执行失败

    我刚刚从 Android Studio 升级3 1到 Android Studio3 1 1 但仍然使用 Gradle 构建工具3 0 0 当我运行我的应用程序时 它会导致此错误 app transformClassesWithAndroi
  • Android Studio:无法加载 dx.jar

    当我在 Android Studio 中运行我的模块时 出现以下错误 错误 Android Dex GradleDevBuild 无法加载 dx jar 我在网上无休无止地寻找解决方案 但一切都与 eclipse 有关 而与 Android
  • 现代 Android 中 WakeLock 的用途是什么?

    我很难理解其目的WakeLock https developer android com reference android os PowerManager WakeLock在现代版本的 Android 中 引入 Doze 和前台服务之后
  • 无法解析目标“android-16”

    我使用的是安卓4 2 2 安装最新的SDK后 当我打开eclipse时 我可以看到所有在构建过程中出现问题的项目 以下是我得到的错误 请让我知道如何解决这个问题 Unable to resolve target android 16 我也遇
  • 批处理脚本 - 如果存在 ./sdcard/file.any 使用 adb

    我想检查我的 Android 设备上是否存在文件 如果不存在 则推送它 使用 adb 批量执行此操作的语法是什么 就像是 if exist sdcard file any do echo exists else adb push file
  • 保存新图像时,它会保留旧画布

    我有一个画布 允许用户绘制和保存 它还允许用户更改颜色并在同一画布上使用不同的颜色进行绘制 我的绘画课 package com test testing import android content Context import andro
  • 三星我的文件资源管理器:从指定文件夹中选取文件

    我使用以下代码打开三星的 我的文件 应用程序来选择文件 public void openFileBrowser Intent intent new Intent com sec android app myfiles PICK DATA t

随机推荐

  • 如何在 Windows 上使用 .Net 构建 iPhone 应用程序?

    是否有任何工具 模拟器 IDE 可以帮助您在 Windows 上使用 Net 开发 iphone 应用程序 然后发布到 iTunes Mono http www mono project com Mono Iphone正在努力将他们的 Ne
  • AuthorizeAttribute 和 IAuthenticationFilter 之间的区别

    在 ASP Net Web API 2 Owin 中 有什么区别IAuthenticationFilter and AuthorizeAttribute 目前我已经通过创建自己的来实现我的授权AuthorizeAttribute像这样 pu
  • 在 PHP 中获取两个日期之间的日期名称

    如何在 PHP 中获取两个日期之间的天数 Input 开始日期 2013 年 1 月 1 日结束日期 2013 年 5 月 1 日 Output Tuesday周三周四 Friday周六 尝试过代码 from date 01 01 2013
  • 无法在 Visual Studio 2015 中发布

    自从安装 Visual Studio 2015 Professional Update 3 以来 https www visualstudio com en us news releasenotes vs2015 update3 vs ht
  • ActionMailer 密码安全

    我是疯了 还是将 ActionMailer 的 SMTP 用户名和密码保留在实际 开发 生产 配置文件中是一个坏主意 看来我应该将其存储在一个加密的地方 或者至少将其从我的 Mercurial 推送中排除 现在 我只是在执行推送之前从源文件
  • 框架之间如何通信?

    我正在维护一个类似这样的应用程序 页面 A 带有显示页面 B 的框架 现在页面 B 是单独域中完全不同产品的一部分 现在 他们希望当单击 B 中的选项时 整个页面会重定向到 A 中的另一个页面 问题是 A 的 url 类似于www clie
  • 如何在 iOS 项目中正确配置 Realm DB 文件 (.realm) 的路径?

    对不起我的英语不好 我开发了一个需要自己的本地数据存储的移动应用程序 我选择 Realm 作为数据库管理系统 在研究 Realm 文档的过程中 我对数据库设计 规范化 CRUD 操作以及与代码直接相关的所有内容没有任何问题 我跟着一头雾水
  • Spring Boot 中的多个 WebSecurityConfigurerAdapter 用于多种模式

    我正在尝试为我的项目设置多个 WebsecurityConfigurerAdapter 其中 Spring Boot Actuator API 使用基本身份验证进行保护 所有其他端点都使用 JWtAuthentication 进行身份验证
  • AttributeError:模块“matplotlib.pyplot”没有属性“axline”

    我有个问题 这是文档 https matplotlib org stable gallery pyplots axline html sphx glr gallery pyplots axline py https matplotlib o
  • 如何判断我的“IDisposable”类型何时尚未显式处置?

    It s 很难找到 https stackoverflow com questions 3097145 resharper custom search pattern to warn idisposable objects在设计 编译时类型
  • 内容的右边缘被居中 div 中的垂直滚动条覆盖

    我想创建一个居中弹出窗口 其中包含标题和其下的一张或多张卡片 每张卡片都包含一个小桌子 当卡片数量超出可显示范围时 会出现垂直滚动条 但有一个问题 垂直滚动条覆盖了卡片的右边缘 该行为取决于浏览器 Chrome 刷新页面时出现此问题 调整页
  • 有没有办法让 VS code 与 git worktree 一起工作? (带有 WSL 的 Windows)

    我喜欢在多个工作树中继续签出存储库git worktree轻松地同时在不同的分支上工作 然而 当 git 位于 git worktree 文件夹中时 VS code 似乎无法将 git 识别为 scm 我在文档中找不到有关此内容或扩展的任何
  • 更新框架按钮在 Xcode 8.1 中消失

    更新到 8 1 8B62 后 界面生成器右下角的 解决自动布局问题 快捷方式中不再有用于更新情节提要 xib 中的框架的按钮 我听说过要在新奇的触摸栏上放置这样一个按钮 但这对于像我这样的凡人来说意味着什么 我必须开始使用菜单栏吗 Now
  • Azure CLI 2:如何在 az group deployment create 命令中提供参数?

    我在 Windows 计算机上使用 Azure CLI 2 0 并尝试使用以下命令创建 Docker VMthis https learn microsoft com nl nl azure virtual machines virtual
  • autoindent 是 vim 中 smartindent 的子集吗?

    帮助自动缩进 开始新行时从当前行复制缩进 键入 在插入模式下或使用 o 或 O 命令时 帮助智能缩进 开始新行时进行智能自动缩进 适用于 C 类语言 程序 但也可用于其他语言 通常 使用 smartindent 时也应启用 autoinde
  • 多模块项目中的 Spring 配置

    我是 Spring 新手 遇到了一种情况 即单个项目具有多个模块 包括一个 Web 模块 Web模块使用Spring MVC 但我想知道是否可以在项目级别拥有主要的Spring配置来照顾整个项目 以便我可以充分利用Spring框架 main
  • 使用 getServerSideProps 获取内部 API? (下一个.js)

    我是 Next js 的新手 我正在尝试理解建议的结构并处理页面或组件之间的数据 例如 在我的页面内home js 我获取一个名为的内部 API api user js它从 MongoDB 返回一些用户数据 我正在通过使用来做到这一点fet
  • C++ 中头文件的保护块是什么?

    我正在尝试使用 Code Blocks IDE 创建一个 C 类 并且有一个名为 Guard block 的字段 我进行了搜索 但未能找到任何有用的信息 这个字段有什么用 谢谢 保护块用于防止同一编译单元 c 文件 多次包含头文件 它们看起
  • 如何在C++应用程序中使用curl Nuget包

    我正在尝试在使用 Visual Studio 2017 开发的 C 应用程序中使用curl 我喜欢使用 Nuget 的想法 因为它是实现库的一种非常干净的方式 我尝试遵循 Microsoft 论坛中的以下示例 这导致我使用 rmt curl
  • Android Studio gradle 构建问题:局部变量类型不匹配

    当我试图在互联网上找到解决方案时 但与我的情况没有太多相关 接下来的问题是 构建失败并出现错误 错误 未捕获的翻译错误 com android dx cf code SimException 局部变量类型不匹配 尝试使用 int 类型的局部