问题标签 [shrinkresources]

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 回答
1157 浏览

android - 在使用 shrinkResources 时保护资源

我正在尝试来自 build-plugin 的新功能 - 不幸的是,它从 res/raw 中删除了我的声音,即使它们在代码中被引用。有没有办法保护资源不被删除?

编辑 - 在玩了一会儿之后 - 似乎这个功能还没有成熟并且可以使用 - 另一个项目它从支持库中删除了所需的布局 xml:

D/PassAndroid(7137):将未处理的异常写入:

0 投票
2 回答
356 浏览

android - 避免从 apk 文件中缩小/删除可穿戴微应用

我在 build.gradle 中激活了资源缩减,但现在我的嵌入式可穿戴应用程序被剥离了。如何避免我的微应用因为未使用而被删除?

跳过未使用的资源 res/raw/android_wear_micro_apk.apk: 382310 字节

因为我想缩小其他未使用的资源,所以我正在使用这个 DSL:

我想我需要使用 proguard,但我不知道如何实现。我检查了文档的原因,但我没有得到它如何保护单个成员变量。

0 投票
1 回答
2147 浏览

android - 使用 Proguard 时的未知来源

minifyEnabled true如果我使用 Proguard (和shrinkResources true) ,我的崩溃报告有点没用

这是 Proguard 的报告:

这是没有 Proguard 的正常报告:

我可以做些什么来使用 Proguard 获取行号吗?

0 投票
2 回答
14498 浏览

android - shrinkResources 设置为 true,但所有未使用的资源(特别是可绘制对象)都没有被删除

我将 shrinkResources 设置为 true,如下所示:

但这只是删除了一些未使用的资源。我知道 gradle 会进行一些猜测,并留下不确定的资源是否未使用。有没有办法 100% 删除所有未使用的资源?

我在另一个线程中阅读了有关将 shrinkMode 设置为 strict 的信息。那会有帮助吗?我无法尝试,因为我不知道在哪里设置它。寻找示例和文档,但不幸的是无法找到正确的页面。

有没有办法确保 100% 清除未使用的资源?

0 投票
1 回答
268 浏览

android - 在android中使用带有proguard的shrinkResources后没有创建resources.txt文件?

实际上我正在尝试在我的 android 项目中使用shrinkResources,现在我在我的 gradle 文件中添加了以下行:

现在,当我尝试运行我的应用程序时,它不会创建任何根据以下文档应该创建的resources.txt文件。资源紧缩

谁能告诉我我做错了什么,因为没有创建resources.txt文件。

请帮助我,这对我真的很有帮助。

0 投票
2 回答
1307 浏览

android - xamarin 中的 shrinkresource 、proguard 等不会减小我的应用程序大小

在 android studio 的build.gradle文件中,我们可以使用shrinkresourcesset totrue来缩小我们的应用程序。也可以使用minifyenabledproguard选项。

但是在 xamarin 中,我该如何使用这些选项?

我在我的应用程序中使用了 xamarin doc 中提到的 proguard。但没有发现它的任何用途(我的意思是我的应用程序大小没有减小)。我的简单应用程序的大小约为 18Mb。如果有人有使用经验xamarin 中的 proguard,请在此处粘贴示例文件,并说明您是如何完成此操作的。因此其他人也可以从中受益。

0 投票
1 回答
314 浏览

android-studio - 在 proguard 之后,点击在发布 apk 中不起作用

在 proguard 之后,点击在发布 apk 中不起作用

我可以将应用程序部署到模拟器甚至真正的 android 智能手机,一切正常,但是当我创建发布 apk,将其传输到手机时,我无法播放,因为点击不起作用。实际上,我可以单击按钮,但它们不会执行。就像“播放”按钮一样,当我单击它时表明我正在单击它,但它并没有开始游戏。我玩过很多proguard,甚至尝试将minifyEnabled更改为false并将shrinkResource更改为false,但现在它给出了有关锁定PID错误的错误。到目前为止我所知道的一切都试过了。我知道我不能在 proguard 文件中包含一些东西,我只是无法得到它是什么。

我的proguard文件:

-dontusemixedcaseclassnames

-dontskipnonpubliclibraryclasses

-verbose

默认情况下关闭优化。Dex 不喜欢代码通过 ProGuard 优化和预验证步骤运行(并且自己执行其中一些优化)。

-dontoptimize

-dontpreverify

请注意,如果要启用优化,不能只在自己的项目配置文件中包含优化标志;相反,您需要从文件中指向该"proguard-android-optimize.txt"文件而不是该project.properties文件。

我们希望在 Activity 中保留可以在 XML 属性中使用的方法onClick

枚举

支持库包含对较新平台版本的引用。如果此应用程序链接到较旧的平台版本,请不要警告那些。我们知道他们,他们是安全的。

了解@Keep 支持注解。


结尾

我的build.gradle文件有这样的proguard:

我没有使用任何自定义文件。我以前做过,但只是删除了,现在我在逗那个 txt 文件。

我正在使用 multiDex 导致文件大小太大。我正在使用 firebase 核心外部库。这里是图书馆:

由于这个问题,我无法发布我的第一个应用程序。

0 投票
2 回答
2005 浏览

android - Android:使“shrinkResources true”保留所有可绘制对象,但删除其他未使用的资源

我有一个项目,其中包含许多可绘制对象,它们以“a”或“b”开头(例如 a1_back、a2_back、b1_start、b2_start 等等)。这些drawables不在代码中使用,但由以下代码使用:

所以,我在代码中没有使用特定的字符串“a1_back”。这就是为什么当我设置“ shrinkResources true ”时,所有以“a”和“b”开头的可绘制对象都会被删除。

我读过您可以指定要继续使用以下 xml 文件的资源:

但是我有很多drawables,不想单独指定每一个。有没有办法在“tools:keep”中设置模式(保留所有以“a”或“b”开头的drawable)或者让它保留项目中的所有drawable,但删除其他未使用的资源?

提前致谢!:)

0 投票
5 回答
7444 浏览

android - ProGuard 导致 NullPointerException

在我的 gradle 中设置时,我在启动我的应用程序时 minifyEnabled true收到NullPointerException :

在阅读 StackOverflow 时,我发现了proguard-rules.pro文件的一些设置:

这并没有真正解决这个问题(但以前的 NullPointerException)。

最后是我毕业的重要部分:

当我解除minifyEnabled一切正常工作时。

谢谢你的帮助!

0 投票
0 回答
884 浏览

android - Android Studio 缩小具有外部库依赖项的应用程序代码

我正在构建一个 android 应用程序(仍然是空的),它依赖于另一个 android 库项目,该项目包含我多年来开发的所有基类和实用程序。

我注意到将该依赖项添加到我的新应用程序并尝试运行它,android studio 会生成一个大小约为 22 MB 的开发 apk。

为了生成尽可能小的 apk,我启用了代码缩小(build.gradle 文件中的 minifyEnabled)。构建将 minifyEnable 设置为 true 的 apk 会产生很多警告,这些警告会阻止 APK 成功生成,因此我将proguard-rules.pro文件配置如下:

那些与我在proguard-rules.pro中指定的包相关的警告现在消失了,但 APK 构建仍然给我这个错误:

我该如何解决这个问题?如何减小 APK 的大小?

提前致谢 :)

编辑 我已经尝试过thisthis。我已经添加

到我的库类(不是应用程序)的 proguard-rules.pro 。现在,该应用程序给出了有关库中缺少类的错误,例如:

我该如何解决?