问题标签 [dexguard]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1176 浏览

java - 无需混淆加密 APK Dexguard

对于评估,我想使用 DexGuard 加密我的 APK 文件中的所有字符串,但不使用混淆、缩小或优化选项。
这是可能的还是我被迫混淆APK来加密它?
我使用以下命令行来加密所有类:

conf.pro 看起来像这样:

我已经使用该工具jar tf ...获取所有类名,然后-encryptstrings class ...在 conf.pro 文件中过滤后添加所有类。
我的问题是 out.apk 中没有加密任何内容。
我的设置有什么问题?
提前感谢您的帮助。

更新:
我已经尝试了各种组合来加密 APK 而不会混淆,但这是不可能的。所以我的简历是加密只能通过 DexGuard 的混淆来实现。
我看到使用 DexGuard 加密而不进行混淆的唯一变化是使用混淆进行加密并使用映射文件来恢复名称。
但我还没有尝试过。

0 投票
2 回答
1020 浏览

android - 带有 Gradle 2.0 和 Dexguard bootClasspath 的 Android Studio 2.0 错误

我更新到 Android Studio 2.0,现在我想构建我的项目,但我得到了这个异常:

任务 ':app:dexguardDebug' 执行失败。没有这样的属性:类的bootClasspath:com.android.builder.core.AndroidBuilder

我使用 dexguard,gradle 2.0.0

我不知道新的 Android Studio 出了什么问题。

0 投票
2 回答
956 浏览

android - Dexguard / Proguard 使应用程序在 Enum 开关上崩溃

在将 Dexguard 从 7.0.12 更新到 7.1.22 后,我在 Enum 开关上遇到了崩溃。

这只发生在 Dexguard 在我们的项目上运行时(我想这是由 Proguard 问题引起的)。

如果我使用硬编码值,则不会发生崩溃。

当然,我想避免使用硬编码值。

迷恋;撞车;崩溃

发生的崩溃如下

这发生在声明的行上switch(type) {(见下文)

例子

应用程序崩溃的一些示例代码(假设 MyEnum 是一个 Enum 当然):

假设 的序数值MyEnum.SomeValue为 1。

如果我改变它case SomeValue:case 1:它会像预期的那样工作。

我尝试过的

我不知道为什么会发生这种崩溃。我试图添加这些 Proguard 规则。

但这并不能解决问题。

更新

我刚刚检查了映射文件,我所有的枚举名称等都被保留了。现在我对正在发生的事情更加一无所知。

更新 2

刚看了一下输出。编译成这个。从堆栈跟踪来看,我想ifProguard 没有保留。这是在哪里定义的?我需要添加什么才能让 Proguard 保留这个?

更新 3

在中间代码中,这行代码如下所示:

它陈述的事实null.$困扰着我。这似乎不对。或者这是正常的吗?

更新 4

刚刚恢复到我们旧版本的 Dexguard 并删除了我添加的 Proguard 规则。

现在不再发生崩溃,尽管代码看起来仍然完全相同。(中间体和完全编译的代码)

更新 5

切换到 Dexguard 7.2,它完美无缺。

0 投票
1 回答
2888 浏览

android - proguardFile getDefaultDexGuardFile('dexguard-release.pro') 不再有效

将 DexGuard 与 android studio 一起使用时,我们一直需要在发布版本中包含一行,那就是

我一直无法弄清楚如何更改 getDefaultDexGuardFile 查找 dexguard-release.pro 的路径,但到目前为止,它一直在我的 DexGuard 文件夹的 /lib 文件夹中正确搜索。

即使在 2 天前,使用 Android Studio 2.0.0 也很好。今天,我尝试构建另一个项目的发布版本,它之前在其中找到了 dexguard-release.pro(早期使用 Android Studio 1.5.0),现在它给出了

我该如何解决这个问题?似乎没有通过谷歌搜索(或官方 DexGuard 文档)解释 getDefaultDexGuardFile 的工作原理的文档 .. 它如何决定查看位置或如何更改它。此外,警告消息不是很有帮助,给出的似乎是部分路径 /lib/dexguard-release.pro 而不是它现在试图找到 dexguard-release.pro 的实际位置的完整路径

如果有人能告诉我如何获得对 getDefaultDexGuardFile 正在搜索的路径的一些控制..?

0 投票
1 回答
573 浏览

android - 使用本机代码添加库后 Dexguard 崩溃

将包含本机代码(嵌入为)的库添加到项目后,我的应用程序构建在运行任务.so时开始崩溃。dexguard<Flavor><BuildType>错误说:

0 投票
2 回答
813 浏览

android - 在发布(dexguard)上构建但在调试中没有出现致命异常

我已经看到这是 4.4 设备的常见问题。我已经阅读了一堆关于 abc_ic_ab_back_material.xml 的其他线程,并且我已经能够在调试中解决问题,但在发布时无法解决。有人可以在这里帮忙吗?这里例外:

致命异常:主进程:com.tools.picturedraw,PID:8136 java.lang.RuntimeException:无法启动活动 ComponentInfo{com.tools.picturedraw/com.blrapp.blrcommon.MainActivity}:android.content.res.Resources$ NotFoundException:来自可绘制资源 ID #0x7f020013 的文件 res/drawable/abc_ic_ab_back_material.xml 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2184) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233) 在 android.app .ActivityThread.access$800(ActivityThread.java:135) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:136) 在android.app.ActivityThread.main(ActivityThread.java:5001) 在 java.lang.reflect.Method.invokeNative(Native Method) 在 java.lang.reflect.Method.invoke(Method.java:515) 在 com.android。 internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) 在 dalvik.system.NativeStart.main(Native Method) 的 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 引起:android.content.res.Resources$NotFoundException:文件 res/drawable /abc_ic_ab_back_material.xml 来自可绘制资源 ID #0x7f020013 在 android.content.res.Resources.loadDrawable(Resources.java:2096) 在 android.content.res.Resources.getDrawable(Resources.java:700) 在 android.support.v4 .content.ContextCompat.getDrawable(:354) 在 android.support.v7。widget.AppCompatDrawableManager.getDrawable(:193) 在 android.support.v7.widget.AppCompatDrawableManager.getDrawable(:181) 在 android.support.v7.widget.AppCompatDrawableManager.checkVectorDrawableSetup(:689) 在 android.support.v7.widget。 AppCompatDrawableManager.getDrawable(:186) 在 android.support.v7.widget.TintTypedArray.getDrawableIfKnown(:77) 在 android.support.v7.app.AppCompatDelegateImplBase.(:83) 在 android.support.v7.app.AppCompatDelegateImplV7.( :146) 在安卓。support.v7.app.AppCompatDelegateImplV11.(:28) 在 android.support.v7.app.AppCompatDelegateImplV14.(:41) 在 android.support.v7.app.AppCompatDelegate.create(:193) 在 android.support.v7。 app.AppCompatDelegate.create(:173) at android.support.v7.app.AppCompatActivity.getDelegate(:511) at android.support.v7.app.AppCompatActivity.onCreate(:71) at com.blrapp.blrcommon.MainActivity。 onCreate(:136) 在 android.app.Activity.performCreate(Activity.java:5231) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233) 在 android。 app.ActivityThread.access$800(ActivityThread.java:135) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 在 android.os。 Looper.loop(循环。java:136) 在 android.app.ActivityThread.main(ActivityThread.java:5001) 在 java.lang.reflect.Method.invokeNative(Native Method) 在 java.lang.reflect.Method.invoke(Method.java:515)在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 在 dalvik.system.NativeStart.main(Native方法)引起:org.xmlpull.v1.XmlPullParserException:二进制 XML 文件第 17 行:android.graphics.drawable.Drawable.createFromXml(Drawable.java:877) 在 android.content.res.Resources.loadDrawable(Resources .java:2092) 在 android.content.res.Resources.getDrawable(Resources.java:700) 在 android.support.v4.content.ContextCompat.getDrawable(:354) 在 android.support.v7.widget.AppCompatDrawableManager.getDrawable (:193) 在 android.support.v7.widget。AppCompatDrawableManager.getDrawable(:181) 在 android.support.v7.widget.AppCompatDrawableManager.checkVectorDrawableSetup(:689) 在 android.support.v7.widget.AppCompatDrawableManager.getDrawable(:186) 在 android.support.v7.widget.TintTypedArray。 getDrawableIfKnown(:77) at android.support.v7.app.AppCompatDelegateImplBase.(:83) at android.support.v7.app.AppCompatDelegateImplV7.(:146) at android.support.v7.app.AppCompatDelegateImplV11.(:28)在 android.support.v7.app。AppCompatDelegateImplV14.(:41) at android.support.v7.app.AppCompatDelegate.create(:193) at android.support.v7.app.AppCompatDelegate.create(:173) at android.support.v7.app.AppCompatActivity.getDelegate (:511) 在 android.support.v7.app.AppCompatActivity.onCreate(:71) 在 com.blrapp.blrcommon.MainActivity.onCreate(:136) 在 android.app.Activity.performCreate(Activity.java:5231) 在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233) 在 android.app.ActivityThread.access$800(ActivityThread.java:135) 在 android .app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:136) 在 android.app。 ActivityThread.main(ActivityThread.java:5001) 在 java.lang.reflect.Method.invokeNative(Native Method) 在 java.lang.reflect.Method.invoke(Method.java:515) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit. java:785) com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) dalvik.system.NativeStart.main(Native Method)515) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 在 dalvik.system.NativeStart.main (本机方法)515) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 在 dalvik.system.NativeStart.main (本机方法) 

我的应用程序/gradle 文件:

提前致谢。

0 投票
2 回答
2314 浏览

android - 如何将 gradle 指向我的 dexguard 许可证

我正在尝试使用 Dexguard 配置我的 android studio 项目。我不明白如何告诉 gradle 在哪里获得我的许可证。我的许可证位于我的项目的根位置(即与我的/app目录位于同一位置)。而且名字是dexguard-license.txt

另外,这是我运行时遇到的错误

在此处输入图像描述

我一直在排除故障并最终得到

在此处输入图像描述

0 投票
1 回答
280 浏览

android - Firebase App Invite 停止使用 Dexguard

我的应用程序运行良好。但为了准备投入生产,我应用了 Dexguard。使用 Dexguard Firebase AppInvite 不再有效。当我发送邀请时,我会经过小吃店

消息发送失败!

如何让 Firebase App Invite 与 Dexguard 一起使用?顺便说一句,我对 Firebase 云消息传递没有任何问题。

我在用

0 投票
1 回答
187 浏览

dexguard - 阅读 Dexguard 的混淆 apk 的图标

在我的应用程序中,它需要上传 apk 文件并使用 apktool 显示其信息。所有 apk 都按预期工作,但通过 Dexguard 混淆的 apk 无法读取图标。res 文件夹中不存在资源/图标,它们位于具有有线名称的未知文件夹下。

任何帮助或提示表示赞赏。我正在使用 apktool 2.1.1。

谢谢,

0 投票
2 回答
1917 浏览

android - pro guard 保持私有构造函数

我在我们的项目中使用 Kofax,它使用了很多 Reflection 和 Robogiuice。我们正在使用 Dexguard 来混淆我们的代码。我们遇到的问题之一是私有构造函数被剥离。我的代码中已经有了这个:

但这无济于事,我的一些类的构造函数仍然被剥离。

1) 在 >com.kofax.mobile.sdk.capture.MainModule$ReflectionMakeSize 中找不到合适的构造函数。类必须具有 > 一个(且只有一个)用 @Inject 注释的构造函数或一个非私有的零参数 > 构造函数。在 >com.kofax.mobile.sdk.capture.MainModule$ReflectionMakeSize.class(Unknown >Source) 在 >com.kofax.mobile.sdk.capture.MainModule.configure(:145)

任何人都知道如何解决这个问题?

编辑。

我刚刚发现,只有构造函数private static class被删除,其他类的构造函数仍然存在。

有谁知道为什么?