Android meta标签,android – 在apk中保留’META-INF / services’文件

在Android应用中,自定义字符集未被加载,因为'JAVA-INF/services'文件可能在打包过程中被Proguard移除。解决方案是在Proguard配置中适当地保留这些文件,以确保CharsetProvider能正确工作。
摘要由CSDN通过智能技术生成

我有一个已经在

JavaSE上工作的自定义字符集.

我的CharsetProvider的类在java.nio.charset.spi.CharsetProvider文件中指定,该文件位于META-INF / services中,所有内容都正常加载并按预期工作.

但是现在我也在android上使用lib,但是在Android-App中没有加载charset.

如何集成我的charset,以便在Android-App中使用它?

Charset.forName("MyCS");

目前我正在做一个像这样的解决方法:

public static String decode(String encoding, byte[] buffer, int offset, int length) {

String result = "";

try {

result = new String(buffer, offset, length, encoding);

} catch (UnsupportedEncodingException ex) {

MyCharsetProvider provider = new MyCharsetProvider();

Charset cs = provider.charsetForName(encoding);

if (cs == null) {

Logger.getLogger(Converters.class.getName()).log(

Level.SEVERE,null,ex);

result = new String(buffer, offset, length);

} else

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值