onRequestPermissionsResult 无法回调的问题

本文详细解析了在Android应用中,onRequestPermissionsResult方法在release包中因混淆导致的回调失败问题。通过分析,指出该问题是由于proguard混淆规则未包含此方法导致,并提供了具体的解决方案,即在混淆配置文件中加入特定的keep规则来避免该方法被混淆。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题:onRequestPermissionsResult无法回调。

解决方法1:问题在网上已经有很读的解决方法了,可搜索一一验证。

 

但是可能遇到别的原因,debug包中回调没有问题,但是release包出现了问题。

原因:混淆

onRequestPermissionsResult被mapping转换了。

这个时候需要keep这个方法,如果你不想整个Activity被keep的话。

-keepclassmembers class com.tt.main.MainActivity {
   public void onRequestPermissionsResult(int,java.lang.String[],int[]);
}

如果不keep的,mapping文件可能是

void onRequestPermissionsResult(int,java.lang.String[],int[]) -> a

keep后就不会被混淆了

void onRequestPermissionsResult(int,java.lang.String[],int[]) -> onRequestPermissionsResult

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值