【问题标题】:card.io strings do not change with proguardcard.io 字符串不会随 proguard 改变
【发布时间】:2013-09-11 16:51:50
【问题描述】:

我在 card.io 上遇到了混淆问题。

我正在使用 card.io 官方页面上给出的标签更改 strings.xml 上的字符串,并且在我调试时,应用程序使用更改后的字符串。但是当我用 proguard 导出签名的 apk 时,该应用程序使用自己的字符串。你可以帮帮我吗?我错过了什么?

这是我的 proguard.cfg 内容:(我使用示例应用的 proguard 文件。)

-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*

-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference

-keepclasseswithmembernames class * {
    native <methods>;
}

-keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet);
}

-keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet, int);
}

-keepclassmembers class * extends android.app.Activity {
   public void *(android.view.View);
}

-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}

-keep class * implements android.os.Parcelable {
  public static final android.os.Parcelable$Creator *;
}

-keep class io.card.** 
-keepclassmembers class io.card.** {
   *;
}

## Good practice so that you don't end up logging sensitive info.
# Remove debug, verbose, and info Log calls
-assumenosideeffects class android.util.Log {
    public static *** d(...);
    public static *** v(...);
    public static *** i(...);
    ## Uncomment to remove warnings and errors as well
    # public static *** w(...);
    # public static *** e(...);
}

【问题讨论】:

    标签: android obfuscation proguard localizable.strings card.io


    【解决方案1】:

    来自 card.io 的 Jeff 在这里。

    card.io 从 3.1.0+ 版本开始不再支持 strings.xml 文件,因为 SDK 提供了翻译。您使用的是最新版本吗?

    如果没有,请下载the latest SDK。您可以依靠设备语言设置来自动调出正确的本地化,或者使用 CardIOActivity.EXTRA_LANGUAGE_OR_LOCALE 强制使用语言环境(请参阅javadocs)。

    【讨论】:

    • 您好 Jeff,我使用的是 3.0.6,下载的是 3.1.1。我设置为 tr - scanIntent.putExtra(CardIOActivity.EXTRA_LANGUAGE_OR_LOCALE, "tr")- 谢谢它已更改为 tr,应用程序使用您的本地化字符串。我不能用地雷改变。我用作“值-tr”。我应该添加其他内容吗?
    • 不。那些 values-* 文件现在已经过时了。如果翻译需要修正,请告诉我们!
    • 如果我可以更改自定义字符串,那就更好了。但只要它在设置的本地化下给出合适的结果,就足够了。谢谢。
    【解决方案2】:

    为了补充 Jeff 的回复,如果翻译有问题,我们愿意修复它!请file bugs here

    我还更新了示例应用程序以删除字符串示例。感谢您告知我们它已过时。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-07
      • 1970-01-01
      • 2011-05-24
      • 2016-07-04
      • 1970-01-01
      • 2021-08-21
      • 1970-01-01
      • 2019-11-06
      相关资源
      最近更新 更多