如何同时在android项目和服务项目上应用proguard

发布于 2024-11-07 10:26:34 字数 269 浏览 4 评论 0原文

我正在尝试在我的android应用程序中使用proguard,我已经在一个单独的项目中编写了所有服务,并通过maven打包为服务jar。我在我的 UI 项目中使用这个服务 jar 作为依赖项。

我正在使用 maven android 和 proguard-maven-plugin 来构建/发布我的 UI 项目。我的问题是如何同时为两个项目应用Proguard,可以吗?

我尝试在服务项目上单独运行 proguard 并将该 jar 添加到 UI 项目中,但它不起作用。请指导我解决这个问题。

I'm trying to use the proguard in my android application, I've wrote all my services in a separate project and package through maven as service jar. I'm using this service jar as dependency in my UI project.

I'm using maven android and proguard-maven-plugin to build/release my UI project. My question is how to apply Proguard for both project at same time, is it possible to do?

I tried running proguard separately on service project and add that jar to UI project but it's not worked.please guide me to solve this.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

时光匆匆的小流年 2024-11-14 10:26:34

您不应该在 Android 应用程序引用的 jar 文件上运行 proguard(在您的特定情况下,而不是一般情况下)。

以下是 Android 应用程序的编译方式:

  1. 将所有 .java 文件编译为 .class
  2. 解压缩所有 jar 文件并从中提取 .class 文件。
  3. 将 proguard 应用于所有 .class 文件(应用程序的 .class 文件 + 所有 jar 的 .class 文件)。
  4. .class 文件转换为 dex 格式,从而生成 classes.dex 文件

基本上,您不应该在使用的 jar 文件上应用 proguard通过 Android 应用程序。如果您必须应用混淆器,请确保您的 Android 应用程序使用的所有类、接口等都不会被混淆器混淆。

我建议只使用 Android 的构建系统 proguard 步骤,称为 -obfuscate。这将是最简单的方法(当崩溃报告开始出现时,这会让你的生活变得更轻松)。

You shouldn't run proguard on jar file which are references by your android application (in your particular case, not in general).

Here is how android application is being compiled:

  1. Compile all .java files into .class.
  2. Unzip all jar files and extract .class files from them.
  3. Apply proguard to all .class files (your application's .class files + all jars' .class files).
  4. Convert .class files to dex format which results in classes.dex file

Basically, you shouldn't apply proguard on a jar file that is used by Android Application. If you have to apply proguard, then make sure all classes, interfaces, etc. that are used by your Android Application are not obfuscated by proguard.

I would recommend to just use Android's build system proguard step called -obfuscate. That would be the easiest way to go (and would make your life much easier when crash reports start coming in).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文