card.io字符串不随proguard而改变

时间:2013-09-11 16:51:50

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

我在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(...);
}

2 个答案:

答案 0 :(得分:3)

Jeff来自card.io。

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

如果没有,请下载the latest SDK。您可以依靠设备语言设置自动显示正确的本地化,也可以使用CardIOActivity.EXTRA_LANGUAGE_OR_LOCALE强制使用区域设置(请参阅javadocs)。

答案 1 :(得分:0)

要添加Jeff的回复,如果翻译出现问题,我们想修复它!请file bugs here

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