当前位置: 首页 > 知识库问答 >
问题:

运行具有水渠库的ProGuard

扶杜吟
2023-03-14

我正在尝试配置ProGuard,但我无法让它工作。

我尝试过这样的事情:

-keep class com.android.auth.TwitterHandle.** { *; }
-keep class oauth.** { *; }

没有任何运气。

不管怎样,我真的不认为忽视是答案。因为那可能意味着有些东西坏了。

有什么提示吗?

谢啦!

共有3个答案

秦信瑞
2023-03-14

请尝试这篇文章https://stackoverflow.com/a/15477898/1665964

插入以跳过ProGuard中的混淆,使用此示例保护您的LIB、JAR、类和子类

-optimizationpasses 5
-dump class_files.txt
-printseeds seeds.txt
-printusage unused.txt
-printmapping mapping.txt
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-allowaccessmodification
-repackageclasses ''

-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.MapActivity
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider

-libraryjars  libs/commons-io-2.2.jar
-libraryjars  libs/gson-2.2.2.jar
-keep public class org.apache.commons.io.**
-keep public class com.google.gson.**
-keep public class com.google.gson.** {public private protected *;}

##---------------Begin: proguard configuration for Gson ----------
-keepattributes Signature
-keepattributes *Annotation*
-keep class com.mypackage.ActivityMonitor.ClassMultiPoints.** { *; }
-keep public class com.mypackage.ActivityMonitor$ClassMultiPoints     { public protected *; }
-keep public class com.mypackage.ActivityMonitor$ClassMultiPoints$ClassPoints { public protected *; }
-keep public class com.mypackage.ActivityMonitor$ClassMultiPoints$ClassPoints$ClassPoint { public protected *; }
##---------------End: proguard configuration for Gson ----------
陆高峰
2023-03-14

将这些行添加到proguard文件中。

-dontwarn oauth.**
-dontwarn com.android.auth.TwitterHandle.**

-keep class oauth.** { *; }
-keep class com.android.auth.TwitterHandle.** { *; }

编辑:

不管怎样,我真的不认为忽视是答案。因为那可能意味着有些东西坏了。

如果您想使用ProGuard并且您有一些错误,例如未找到类,那么您必须禁用/忽略它们的混淆。因为ProGuard在混淆时重命名了类的名称、字段和方法。如果对该类使用反射,这将成为一个大问题。所以你必须说proGuard忽略(而不是混淆)一些类来防止这个问题。

滕星纬
2023-03-14

警告表明AndroidQuery库依赖于OAuth库。显然,您在项目中使用了前一个库,但缺少后一个库。您可以添加缺少的库,但如果您的应用程序在调试模式下没有它也能正常工作,您可以告诉ProGuard忽略缺少的依赖项。在这种情况下:

-dontwarn com.androidquery.auth.**

或者,具有相同的效果:

-dontwarn oauth.signpost.**

参见ProGuard手册

(我是ProGuard的开发者)

 类似资料:
  • 我试图建立flume,这样每个代理可以有多个接收器,最终有多个通道和源(现在只看多个通道)。我有一个类似这样的配置文件和一个ruby模板。我不知道如何将功能添加到模板文件中,以便每个代理可以将一个事件发送到多个通道

  • 问题内容: 是否有任何工具可以检查asp.net或sql server并报告针对数据库运行的所有查询?我问的原因是我正在使用Linq进行项目,并想仔细检查其对每个页面的实际作用。 理想情况下,我想在浏览器中查看页面,并拥有创建该页面所运行的所有查询的报告。 我知道我可以使用调试/断点查看运行在单个查询中的SQL,并且我了解LinqPad,但是恐怕Linq会自己再进行几个查询,以获得我可能不直接知道

  • 我试图理解管道中转换的生命周期。 我有一个有几个变换的pipline。

  • 我的环境:OS:CentOS 7,Java:1.8.0_181,Maven:3.5.4,Quarkus:0.11.0 问候。

  • 我需要我的discord机器人记住在不同的行会中向哪个频道发送问候。目前,我将频道名称作为前缀,并使用它来回忆发送到何处: 我如何设置一个命令,当机器人加入他们的公会时,所有者可以使用该命令,为每个公会设置一个唯一的欢迎通道(并且显然只向加入公会的人发送欢迎消息)。 哦,我如何设置一个命令,最终让人们改变他们公会的欢迎信息? 谢谢!:)

  • 我的要求是使用hibernate映射各种数据库(特别是SQLServer、MySQl和Postgres);从db记录创建一个xml文件。 对于hibernate,我正在使用JAssist在运行时创建hbm文件和POJO。我的代码工作得很好,为了进一步模块化,我为每个数据库实现了片段束。因此,我的主机包将处理运行时类的创建,并将它们添加到classloader、hbm文件创建逻辑和BL中。fragm