“导入项目”进行导入非常简单,而且顺利进行。 然而,当我尝试 Mak-6ren">
gpt4 book ai didi

android-studio - 从 Eclipse 到 Android Studio : Why is proguard. cfg 在不构建版本时使用?

转载 作者:行者123 更新时间:2023-12-03 17:53:05 24 4
gpt4 key购买 nike

所以,我一直在尝试将多项目(即eclipse项目)应用程序的开发迁移到Android Studio(v1.1)。

通过"file">“导入项目”进行导入非常简单,而且顺利进行。

然而,当我尝试 Make/Rebuild 项目时,我遇到了很多惊喜。第一个与 Proguard 无关,与源文件编码有关(最初在 Windows-1252 中),但我很快找到了使用这个 Windows-1252 > Reload > UTF-8 > Convert 答案的解决方案。

然后,我的 com.comp.mod.X 类的“错误:找不到符号类”。然后,我通过转到包含该类的模块(Android Studio 模块,即以前的 Eclipse 项目)并在其 proguard.cfg 中添加以下内容来解决它:

-keep public class com.comp.mod.X

对于上述类中定义的 const BB,这给我留下了“错误:找不到符号变量”。我通过将以下内容添加到相同的 proguard.cfg 中解决了这个问题:
-keepclassmembers class com.comp.mod.X {
public static final boolean BB;
}

那只给我留下了一个“错误:找不到符号方法getPreferenceX()”。我通过添加到相同的 -keepclassmembers 方法来解决这个问题,所以上面现在看起来:
-keepclassmembers class com.comp.mod.X {
public static final boolean BB;
public static java.lang.String getPreferenceX();
}

我以为我已经完成了,但令我沮丧的是,当我尝试重建项目时,我从项目中的其他模块收到了许多额外的错误,所有类型都为“错误:找不到符号类/变量/方法”和相关到一些 proguard.cfg

我本可以继续为每个模块处理 proguard.cfg 文件,但此时我开始怀疑我做错了什么,因为这些 proguard.cfg 文件在 Eclipse 下完美运行。所以,
  • 为什么突然这些对Android Studio不再有用了?
  • 如果 ProGuard runs only when you build your application in release mode ,为什么基于 Android Studio 的构建由于 Proguard 的混淆而提示“找不到符号”?

  • 我错过了什么?

    注意: 我有 而不是 尝试“生成签名的 APK”。我所做的就是“重建项目”。

    最佳答案

    目前(截至 2015 年 4 月 24 日),minifyEnabled的默认值 false对于 ,所有构建类型都不正确多模块项目,其中一些模块(包括应用程序)依赖于其他模块。这是由于 bug #52962导致构建类型为 不是 传播到库——它们总是作为 RELEASE 构建的。

    欢迎提出解决此错误的建议或修复通知。

    关于android-studio - 从 Eclipse 到 Android Studio : Why is proguard. cfg 在不构建版本时使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29761457/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com