使用 Proguard 混淆 ActionBarSherlock

2024-05-07

我正在尝试使用混淆我的 Android 应用程序proguard and ant (eclipse + proguard从来不工作,总是失败error 1)。但我越来越class file ... unexpectedly contains class ...到处都是警告,构建失败。我也尝试过-ignorewarnings选项中proguard。构建成功,但我得到一个无法使用的包。

这是蚂蚁的输出:

-post-compile:

optimize:
     [jar] Building jar: /home/binoy/git/Vibhinna/proguard/unoptimized.jar
     [java] ProGuard, version 4.8
     [java] Reading input...
     [java] Warning: class [classes/com/actionbarsherlock/R$array.class] unexpectedly contains class [com.actionbarsherlock.R$array]
     [java] Warning: class [classes/com/actionbarsherlock/R$attr.class] unexpectedly contains class [com.actionbarsherlock.R$attr]
     [java] Warning: class [classes/com/actionbarsherlock/R$bool.class] unexpectedly contains class [com.actionbarsherlock.R$bool]
     [java] Warning: class [classes/com/actionbarsherlock/R$color.class] unexpectedly contains class [com.actionbarsherlock.R$color]
     ....
     [java] Warning: class [classes/com/actionbarsherlock/R$xml.class] unexpectedly contains class [com.actionbarsherlock.R$xml]
     [java] Warning: class [classes/com/actionbarsherlock/R.class] unexpectedly contains class [com.actionbarsherlock.R].
     [java] Warning: class [classes/com/vibhinna/binoy/DetailsDialogFragment$1.class] unexpectedly contains class [com.vibhinna.binoy.DetailsDialogFragment$1]
     [java] Warning: class [classes/com/vibhinna/binoy/DetailsDialogFragment.class] unexpectedly contains class [com.vibhinna.binoy.DetailsDialogFragment]
     [java] Warning: class [classes/com/vibhinna/binoy/HoloAlertDialogBuilder.class] unexpectedly contains class [com.vibhinna.binoy.HoloAlertDialogBuilder]
     [java] Warning: class [classes/com/vibhinna/binoy/MiscMethods.class] unexpectedly contains class [com.vibhinna.binoy.MiscMethods]
     [java] Warning: class [classes/com/vibhinna/binoy/NewDialogFragment$1$1.class] unexpectedly contains class [com.vibhinna.binoy.NewDialogFragment$1$1]
     [java] Warning: class [classes/com/vibhinna/binoy/NewDialogFragment$1$2.class] unexpectedly contains class [com.vibhinna.binoy.NewDialogFragment$1$2]
     [java] Warning: class [classes/com/vibhinna/binoy/NewDialogFragment$1.class] unexpectedly contains class [com.vibhinna.binoy.NewDialogFragment$1]
     [java] Warning: class [classes/com/vibhinna/binoy/NewDialogFragment$10.class] unexpectedly contains class [com.vibhinna.binoy.NewDialogFragment$10]
     [java] Warning: class [classes/com/vibhinna/binoy/NewDialogFragment$11.class] unexpectedly contains class [com.vibhinna.binoy.NewDialogFragment$11]
     [java] Warning: class [classes/com/vibhinna/binoy/NewDialogFragment$2.class] unexpectedly contains class [com.vibhinna.binoy.NewDialogFragment$2]
     [java] Warning: class [classes/com/vibhinna/binoy/NewDialogFragment$3.class] unexpectedly contains class [com.vibhinna.binoy.NewDialogFragment$3]
     [java] Warning: class [classes/com/vibhinna/binoy/NewDialogFragment$4.class] unexpectedly contains class [com.vibhinna.binoy.NewDialogFragment$4]
     [java] Warning: class [classes/com/vibhinna/binoy/NewDialogFragment$5.class] unexpectedly contains class [com.vibhinna.binoy.NewDialogFragment$5]
     [java] Warning: class [classes/com/vibhinna/binoy/NewDialogFragment$6.class] unexpectedly contains class [com.vibhinna.binoy.NewDialogFragment$6]
     [java] Warning: class [classes/com/vibhinna/binoy/NewDialogFragment$7.class] unexpectedly contains class [com.vibhinna.binoy.NewDialogFragment$7]
     [java] Warning: class [classes/com/vibhinna/binoy/NewDialogFragment$8.class] unexpectedly contains class [com.vibhinna.binoy.NewDialogFragment$8]
     ....
     [java] Warning: class [classes/com/vibhinna/binoy/Preferences.class] unexpectedly contains class [com.vibhinna.binoy.Preferences]
     [java] Warning: class [classes/com/vibhinna/binoy/ProcessManager.class] unexpectedly contains class [com.vibhinna.binoy.ProcessManager]
     [java] Warning: there were 89 classes in incorrectly named files.
     [java]          You should make sure all file names correspond to their class names.
     [java]          The directory hierarchies must correspond to the package hierarchies.
     [java]          If you don't mind the mentioned classes not being written out,
     [java]          you could try your luck using the '-ignorewarnings' option.
     [java] java.io.IOException: Please correct the above warnings first.
     [java]     at proguard.InputReader.execute(InputReader.java:133)
     [java]     at proguard.ProGuard.readInput(ProGuard.java:197)
     [java]     at proguard.ProGuard.execute(ProGuard.java:79)
     [java]     at proguard.ProGuard.main(ProGuard.java:493)

我该如何解决?


确保您的 proguard 配置文件具有建议排除 http://actionbarsherlock.com/faq.html对于 Actionbar Sherlock:

-keep class android.support.v4.app.** { *; } 
-keep interface android.support.v4.app.** { *; } 
-keep class com.actionbarsherlock.** { *; } 
-keep interface com.actionbarsherlock.** { *; } 
-keepattributes *Annotation*

也尝试添加

-keepclassmembers class **.R$* {
    public static <fields>;
}

按照建议here https://groups.google.com/d/msg/actionbarsherlock/aK3fLYg08Jw/hm5_srL1MP8J.

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

使用 Proguard 混淆 ActionBarSherlock 的相关文章

随机推荐

  • 计算一个类的实例?

    我一直在清理我正在扩展的模块中的一些代码 但我似乎找不到 Pythonify 这段代码的方法 global next id 1 class Obj def init self global global next id self id gl
  • 在node.js Express框架中设置两个不同的静态目录

    是否可以 我想设置两个不同的目录来提供静态文件 假设 public 和 mnt 您还可以通过指定附加 第一个 参数来设置将静态文件提供给 Web 的路径use 像这样 app use public express static dirnam
  • Google App Maker - 在 onclick 方法中添加时间戳收集按钮

    我到处搜索 找不到有效的具体答案 我需要在应用程序制作工具中的表单中添加一个按钮 以在单击时记录时间戳 而不是日期 到目前为止 我唯一能开始工作的是 widget datasource item Timestamp OUT new Date
  • 立即更新 UserControl 中的所有绑定

    当 UserControl 的可见性更改为 Visible 时 我需要更新其上的所有绑定 几乎所有绑定都绑定到用 户控件的 DataContext 属性 因此我尝试更新该绑定的目标 BindingOperations GetBindingE
  • Rails 5:ActionMailer 的“deliver_later”从未在生产环境中交付

    我有一个非常基本的邮件程序设置 如下所示来发送交易邮件程序 class PayoutMailer lt ApplicationMailer default from email protected cdn cgi l email prote
  • Swift 3 异步调度警告

    我有这个代码 DispatchQueue global priority DispatchQueue GlobalQueuePriority default async let url URL string itemImageURL let
  • 在 SSIS 流中使用临时表失败

    我有一个 ETL 过程 可将约 40 个表从源数据库 Oracle 10g 提取到 SQL Server 2014 开发人员版 临时环境 我的提取过程 确定暂存中的最新行 从源中选择所有较新的行 将结果插入 TEMPTABLE 将 TEMP
  • 由于空数组包含电子邮件为空的文档,MongoDB 错误 E11000 重复键错误集合

    这是我正在编写的代码 const createOrgPerso new Person org newOrganisation doc id data 但空数组仍在创建中 然后再次运行这段代码 它给出E 11000 duplicate key
  • 打印 HTML 时删除默认浏览器页眉和页脚

    我得到了一个带有以下内容的 HTML 我想问的问题是 有什么方法可以删除网络浏览器添加到打印页面的字符串吗 Such as 打印页面的网站 页数 网页标题 印刷日期 这些通常是浏览器特定的打印设置 例如 在 IE 和 FireFox 中 您
  • Sweetalert 2 异步文本区域

    我尝试使用这个简单的文档示例https sweetalert2 github io https sweetalert2 github io 但我收到错误消息 未捕获的语法错误 await 仅在异步函数中有效 document ready f
  • Hibernate save() 和事务回滚

    在休眠状态下 当我save 事务中的一个对象 然后我回滚它 保存的对象仍然保留在数据库中 这很奇怪 因为这个问题不会发生在update or delete 方法 只需用save 这是我正在使用的代码 DbEntity dbEntity ge
  • 按升序选择最后 20 个顺序 - PHP/MySQL

    这是我的表结构 MyTable ID P K auto increment TopicID UID Comment 现在我想获取某个 TopicID 的最后 20 条评论 但它应该按升序排序 就像 Facebook 默认只显示最后 20 条
  • Angular刷新页面重复url中的页面

    我是一名 Angular 新手 正在构建一个简单的寻呼机 我设置了路由器 以便空 URL 重定向到仪表板组件 因此localhost 4200会自动路由到localhost 4200 dashboard完美的 但是 如果我单击刷新按钮 它会
  • mysql 更新或插入多条记录(如果表中尚不存在)

    mysql 数据库中有一个名为 inventory item 的表 id product id 和 quantity 是表的列 id 是主键 在插入记录时自动生成 当用户提交要向表中插入多条记录的表单时 可以在 foreach 循环中收集所
  • C4533 警告:为什么 goto 会跳过变量初始化?

    我越来越 警告 C4533 goto FreeDC 跳过了 b 的初始化 但是如果代码到达标签FreeDC in WM CREATE b 未初始化 如果在这种情况下未初始化 如何跳过其初始化 我只是不明白这个警告 include
  • iOS 6 模拟器卡在启动画面上

    我正在使用 Mac os 10 8 2 和 Xcode 4 5 2 当我尝试在 ios 5 5 1 模拟器中运行我的应用程序时 它工作正常 但是当我尝试在 ios 6 模拟器中运行应用程序时 它会卡在空白屏幕上 谁能让我知道我的问题的解决方
  • Gradle 构建错误:aidl.exe 以非零退出值 1 完成

    这是我的 build gradle 文件 点击查看截图 https i stack imgur com ENTbh png 和我的错误 错误 任务 app compileDebugAidl 执行失败 com android ide comm
  • 为 schtasks.exe 指定日期参数的独立于语言的方法

    我正在尝试将新任务添加到 Windows 任务计划程序schtasks exe 我现在遇到的问题是指定任务应该在一周中的哪一天运行 据我所知 愚蠢的程序坚持将该参数作为日期名称的字符串缩写 本地化为操作系统语言 其他参数可以很好地接受英语字
  • 普通的 x86 或 AMD PC 是直接从 ROM 运行启动/BIOS 代码,还是先将其复制到 RAM? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我知道现代计算机已经修改了哈佛架构 它们可以从保存数据的地方以外的地方读取指令 这一事实是否允许它们直接从 ROM 芯片获取指令 他们是先
  • 使用 Proguard 混淆 ActionBarSherlock

    我正在尝试使用混淆我的 Android 应用程序proguard and ant eclipse proguard从来不工作 总是失败error 1 但我越来越class file unexpectedly contains class 到