StringUtils.rightPad () 在 apache 中抛出 NoSuchMethodError 在 android
StringUtils.rightPad () in apache throws NoSuchMethodError in android
我已经包含了
在应用程序中 gradle
compile 'org.apache.commons:commons-lang3:3.0'
我在 progaurd 中加入了
-keep class org.apache.commons.lang3.StringUtils*
但是当应用程序尝试访问 StringUtils.rightPad() 时。它抛出一个异常说
java.lang.NoSuchMethodError: org.apache.commons.lang3.StringUtils.a
相关代码
public static String getSignedData(String data) {
int blockSize = 64;
byte[] key = StringUtils.rightPad(ApplicationConst.getCheckoutAccessKey(), blockSize, (char) 0x00).getBytes();
byte[] iPad = StringUtils.repeat((char) 0x36, blockSize).getBytes();
byte[] oPad = StringUtils.repeat((char) 0x5c, blockSize).getBytes();
byte[] stage1 = hashMessage(concatenate(xor(key, iPad), data.getBytes()));
byte[] stageFinal = hashMessage(concatenate(xor(key, oPad), stage1));
return bytesToHex(stageFinal);
}
修改您的 proguard 脚本并添加以下行。
-keep class org.apache.commons.lang3.StringUtils { *; }
-keep public class org.apache.commons.lang3.StringUtils { public protected static *; }
-keepclassmembers public class org.apache.commons.lang3.StringUtils { *; }
-keepnames public class org.apache.commons.lang3.StringUtils { *; }
我已经包含了
在应用程序中 gradle
compile 'org.apache.commons:commons-lang3:3.0'
我在 progaurd 中加入了
-keep class org.apache.commons.lang3.StringUtils*
但是当应用程序尝试访问 StringUtils.rightPad() 时。它抛出一个异常说
java.lang.NoSuchMethodError: org.apache.commons.lang3.StringUtils.a
相关代码
public static String getSignedData(String data) {
int blockSize = 64;
byte[] key = StringUtils.rightPad(ApplicationConst.getCheckoutAccessKey(), blockSize, (char) 0x00).getBytes();
byte[] iPad = StringUtils.repeat((char) 0x36, blockSize).getBytes();
byte[] oPad = StringUtils.repeat((char) 0x5c, blockSize).getBytes();
byte[] stage1 = hashMessage(concatenate(xor(key, iPad), data.getBytes()));
byte[] stageFinal = hashMessage(concatenate(xor(key, oPad), stage1));
return bytesToHex(stageFinal);
}
修改您的 proguard 脚本并添加以下行。
-keep class org.apache.commons.lang3.StringUtils { *; }
-keep public class org.apache.commons.lang3.StringUtils { public protected static *; }
-keepclassmembers public class org.apache.commons.lang3.StringUtils { *; }
-keepnames public class org.apache.commons.lang3.StringUtils { *; }