为什么 proguard 只是混淆了没有扩展任何内容的类

2023-12-24

我正在尝试用 proguard 来混淆我的 Android 应用程序。但问题是,当我反编译 apk 时,它只显示更改的变量名称,但类名称与源中的相同。只有一个类的名称发生了更改,这不会扩展任何其他类。我搜索了很多选项,但没有任何效果,所以我在这里发布我的问题。

这是我的 gradle 文件代码:-

 buildTypes {
    release {

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

在我的 proguard Rules.pro 文件中

-ignorewarnings

请在这件事上给予我帮助 谢谢:)


我不知道你的情况到底是什么问题,但我已经通过下面解决了我的问题proguard rules它们是帮助您保护您的应用程序的各种规则

-dontskipnonpubliclibraryclassmembers
-dontshrink
-dontoptimize
-printmapping build/libs/output/obfuscation.map
-keepattributes
-adaptclassstrings
-dontnote
-dontwarn

# Keep Android classes
-keep class ** extends android.** {
    <fields>;
    <methods>;
}

# Keep serializable classes & fields
-keep class ** extends java.io.Serializable {
    <fields>;
}

# Keep - Applications. Keep all application classes, along with their 'main'
# methods.
-keepclasseswithmembers public class * {
    public static void main(java.lang.String[]);
}

# Also keep - Enumerations. Keep the special static methods that are required in
# enumeration classes.
-keepclassmembers enum  * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}


-assumenosideeffects class android.util.Log {
    public static *** d(...);
    public static *** e(...);
    public static *** w(...);
}

欲了解更多信息,您可以访问Proguard official site https://www.guardsquare.com/en/proguard/manual/examples

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

为什么 proguard 只是混淆了没有扩展任何内容的类 的相关文章

  • Android Studio 3.0 Canary 9 - 无法解析包

    我在 Android Studio 3 0 Canary 9 中遇到几个错误 这些错误是 无法解析 android 软件包 下面列出了一些错误 我刚刚安装了 SDK 的所有额外软件包 但仍然收到 gradle 构建错误 Error 82 1
  • 类型容器“Android 依赖项”引用不存在的库 android-support-v7-appcompat/bin/android-support-v7-appcompat.jar

    我在尝试在我的项目中使用 Action Bar Compat 支持库时遇到了某种错误 我不知道出了什么问题 因为我已按照此链接中的说明进行操作 gt http developer android com tools support libr
  • 在包“android”中找不到属性“backgroundTint”的资源标识符

    我发现了一些视图 xml 属性 例如backgroundTint backgroundTintMode 但是当我使用它作为视图属性定义时 Eclipse 显示错误 No resource identifier found for attri
  • 在 HTTPResponse Android 中跟踪重定向

    我需要遵循 HTTPost 给我的重定向 当我发出 HTTP post 并尝试读取响应时 我得到重定向页面 html 我怎样才能解决这个问题 代码 public void parseDoc final HttpParams params n
  • 我必须使用什么加密程序来通过 HTTP 协议发送加密的“电子邮件”和“密码”值?

    我正在使用 Ruby on Rails 3 我想通过 HTTP 协议发送 电子邮件 和 密码 值 我知道 我不应该 但我需要 我需要从发送用户凭据我的客户申请到一个我的服务应用 我可以使用公共和私人RSA密钥来实现这一点 但如果是这样 我不
  • Android:捕获的图像未显示在图库中(媒体扫描仪意图不起作用)

    我遇到以下问题 我正在开发一个应用程序 用户可以在其中拍照 附加到帖子中 并将图片保存到外部存储中 我希望这张照片也显示在图片库中 并且我正在使用媒体扫描仪意图 但它似乎不起作用 我在编写代码时遵循官方的Android开发人员指南 所以我不
  • 是否有 ADB 命令来检查媒体是否正在播放

    我想使用 ADB 命令检查根植于终端的外部设备中是否正在播放音频 视频 我无法找到任何 ADB 命令 如果有 我尝试过 adb shell dumpsys media player 我想要一个命令来指定视频是否正在运行 您可以使用以下命令查
  • 控制Android的前置LED灯

    我试图在用户按下某个按钮时在前面的 LED 上实现 1 秒红色闪烁 但我很难找到有关如何访问和使用前置 LED 的文档 教程甚至代码示例 我的意思是位于 自拍 相机和触摸屏附近的 LED 我已经看到了使用手电筒和相机类 已弃用 的示例 但我
  • 发布android后更改应用内购买项目的价格

    在 Google Play 上发布后 是否可以更改应用内购买商品的价格 我假设该应用程序也已发布 完整的在线文档位于http developer android com http developer android com也http sup
  • 在gradle插件中获取应用程序变体的包名称

    我正在构建一个 gradle 插件 为每个应用程序变体添加一个新任务 此新任务需要应用程序变体的包名称 这是我当前的代码 它停止使用最新版本的 android gradle 插件 private String getPackageName
  • 在 SQLite 中搜索时排除 HTML 标签和一些 UNICODE 字符

    更新 4 我已经成功运行了firstchar例如 但现在的问题是使用regex 即使包含头文件 它也无法识别regex操作员 有什么线索可以解决这个问题吗 更新 2 我已经编译了sqlite3我的项目中的库 我现在正在寻找任何人帮助我为我的
  • Google 云端硬盘身份验证异常 - 需要许可吗? (v2)

    我一直在尝试将 Google Drive v2 添加到我的 Android 应用程序中 但无法获得授权 我收到 UserRecoverableAuthIOException 并显示消息 NeedPermission 我感觉 Google A
  • 如何使用InputConnectionWrapper?

    我有一个EditText 现在我想获取用户对此所做的所有更改EditText并在手动将它们插入之前使用它们EditText 我不希望用户直接更改中的文本EditText 这只能由我的代码完成 例如通过使用replace or setText
  • Android访问远程SQL数据库

    我可以直接从 Android 程序访问远程 SQL 数据库 在网络服务器上 吗 即简单地打开包含所有必需参数的连接 然后执行 SQL 查询 这是一个私人程序 不对公众开放 仅在指定的手机上可用 因此我不担心第三方获得数据库访问权限 如果是这
  • Android Studio - Windows 7 上的 Android SDK 问题

    我对 Google i o 2013 上发布的最新开发工具 Android Studio 有疑问 我已经成功安装了该程序并且能够正常启动 我可以导入现有项目并对其进行编辑 但是 当我尝试单击 SDK 管理器图标或 AVD 管理器图标时 或者
  • .isProviderEnabled(LocationManager.NETWORK_PROVIDER) 在 Android 中始终为 true

    我不知道为什么 但我的变量isNetowrkEnabled总是返回 true 我的设备上是否启用互联网并不重要 这是我的GPSTracker class public class GPSTracker extends Service imp
  • Android 套接字和 asynctask

    我即将开始制作一个应该充当 tcp 聊天客户端的应用程序 我一直在阅读和阅读 我得出的结论是最好 如果不需要 将我的套接字和异步任务中的阅读器 问题是我不确定从哪里开始 因为我是 Android 新手 这至少对我来说是一项艰巨的任务 但据我
  • 如何确定对手机号码的呼叫是本地呼叫还是 STD 或 ISD

    我正在为 Android 开发某种应用程序 但不知道如何获取被叫号码是本地或 STD 的号码的数据 即手机号码检查器等应用程序从哪里获取数据 注意 我说的是手机号码 而不是固定电话 固定电话号码 你得到的数字是字符串类型 因此 您可以获取号
  • Firebase 添加新节点

    如何将这些节点放入用户节点中 并创建另一个节点来存储帖子 我的数据库参考 databaseReference child user getUid setValue userInformations 您需要使用以下代码 databaseRef
  • 强制 Listview 不重复使用视图(复选框)

    我做了一个定制Listview 没有覆盖getView 方法 Listview 中的每个项目都具有以下布局 联系布局 xml

随机推荐

  • Visual Basic 将数据作为 json 对象发送到 api

    美好的一天 我尝试将数据作为 json 对象发送到 api Content Type application json Authorization Bearer ACCESS TOKEN d datetime 2021 02 21 14 0
  • 从 WebAPI 控制器获取声明 - JWT 令牌,

    我在 ASP NET Core 中构建了一个使用 JWT 承载身份验证的应用程序 进行身份验证时 我定义了一些自定义声明 我需要在另一个 WebAPI 控制器中读取这些声明才能执行某些操作 有什么想法我怎样才能实现这一目标 这就是我的代码的
  • .net webapi HttpGet 与 HttpPost。为什么使用 HttpGet?

    为什么在WebApi框架中使用HttpGet而不是HttpPost 我很清楚 Post 或 Get 类型之间的区别 一个是通过 url 另一个不是 作为基本理解 但我也知道主要区别 可以在服务器上编辑 是 Post 对发送到服务器的数据大小
  • 如何在 HSQLDB GUI 中执行多个命令?

    我想从 GUI 执行许多命令 我想做很多这样的小组 但我无法让一个小组工作 我想我需要以某种方式强制他们之间的提交 但我不知道如何做到这一点 如果我按顺序单独执行这些命令中的每一个 一切都会按预期进行 我正在使用EPSG dat来自 Geo
  • Google Cloud Vision 的 Advanced_ocr_options[] 是什么?

    我正在尝试查找有关的任何信息advanced ocr options under of ImageContext https cloud google com vision docs reference rest v1 ImageConte
  • uWSGI根据环境变量设置配置

    请帮助我理解uWSGI配置逻辑 我有一个环境变量ENVIRONMENT 假设它的值可以是dev or prod 我想根据以下值设置配置选项ENVIRONMENT always executes print statement doesn t
  • 重塑数组中的数组

    我有一个由 40 个数组组成的数组 每个数组都有 1x150 的形状 有没有办法重塑数组 以便我有 40 个 3x50 数组的数组 我不确定是否有一种方法可以使用 np reshape 并在一行中完成 是吗 这真的是一个arraynp ar
  • Qt 中的 QPointer、QSharedPointer 和 QWeakPointer 类有什么区别?

    我从 Qt 文档中读到了有关QPointer QSharedPointer and QWeakPointer类 它说 QPointer是一个模板类 它为 Qt 对象提供受保护的指针 其行为类似于普通的 C 指针 只不过当引用的对象被销毁并且
  • 如何限制正则表达式捕获组?

    我不明白如何限制捕获组 如果我有这样的正则表达式 w 2 s w 2 4 15 我认为这会捕获任何字符串 正好两个字 每个单词至少 2 个字符长 并且整个字符串不超过 15 个字符 但是我的捕获组的限制不起作用 我可以限制捕获组吗 附言 我
  • 使用golang http包时如何限制客户端IP地址

    我正在使用 golanghttp包裹 服务器如何限制客户端IP地址 func s Worker Run c chan error apiMux http NewServeMux apiMux HandleFunc test s test a
  • 如何向 NSDictionary 添加布尔值?

    好吧 对于整数我会使用NSNumber 但我猜 YES 和 NO 不是对象 AFAIK 我只能将对象添加到NSDictionary right 我找不到任何布尔值的包装类 有没有 您使用 NSNumber 它有 init 和 number
  • 如何在 debian 64 位上正确安装 wkhtmltopdf?

    我正在尝试安装 wkhtmltopdf 但是当我这样做时 sudo dpkg i wkhtmltox 0 12 1 linux trusty amd64 deb I get Preparing to unpack wkhtmltox 0 1
  • 如何在 C++ 中使用 MethodInvoker?

    我有一个 C CLI 应用程序 它有一个后台线程 我经常希望它把结果发布到主 GUI 上 我读了SO 上的其他地方 https stackoverflow com questions 1136399 how to update textbo
  • 在 Linq 组中查找最大和最小日期时间

    我正在尝试找到最大值和最小值DateTime来自 CSV 导入 我有这个来从临时导入数据DataTable var tsHead from h in dt AsEnumerable select new Index h Field
  • 圆中矩形的最大堆积

    我在一家纳米技术实验室工作 负责硅晶圆切割 晶圆锯仅切割平行线 当然 我们正在努力最大化我们切割的芯片的产量 所有芯片的尺寸都相同 无论是矩形还是正方形 并且芯片都是从圆形晶圆上切下来的 本质上 我试图将最大的矩形打包成一个圆 我对 MAT
  • 连接两个表的查询

    我是MYSQL的新手 对此的任何帮助将不胜感激 我有两个表 Airports 和 Posts 其中包含以下字段 Airports id Airport code Airport name Posts id Source Airport co
  • 将 Velocity 的 WebappResourceLoader 与 Spring 结合使用

    我正在尝试使用 Velocity 创建一个由 Spring 的 JavaMailSender 类邮寄的电子邮件模板 我决定使用 WebappResourceLoader 在我的 Web 应用程序中查找 Velocity 模板 它位于 Vel
  • R 中的数字列名

    我有一个数据框如下 structure list 104 c NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA yes NA NA NA NA 15 c NA NA NA NA gt 4 0 gt 4
  • 在Qt中,对于上下文菜单项,如何隐藏图标的空间

    我正在使用添加上下文菜单QAction对于一个小部件 现在 操作文本旁边有一些空白 我认为这是一个空间QIcon与QAction应该在那里 现在我该如何隐藏这个空间 我尝试这样做 action gt setIcon QIcon 但似乎仍然不
  • 为什么 proguard 只是混淆了没有扩展任何内容的类

    我正在尝试用 proguard 来混淆我的 Android 应用程序 但问题是 当我反编译 apk 时 它只显示更改的变量名称 但类名称与源中的相同 只有一个类的名称发生了更改 这不会扩展任何其他类 我搜索了很多选项 但没有任何效果 所以我