升级Facebook SDK至4.28.0及以上后,APK安装启动崩溃但AS运行正常
解决Facebook SDK 4.28.0+打包APK崩溃但AS直接运行正常的问题
这个坑我之前踩过!大概率是代码混淆规则缺失导致的——毕竟Android Studio直接运行是Debug模式,默认不会开启混淆;但你打包Release APK时混淆生效,把Facebook SDK依赖的Apache Http组件的关键方法给误删/重命名了,就出现了日志里的NoSuchMethodError。
给你一套实测有效的解决方案:
步骤1:补充混淆规则
找到你app模块下的proguard-rules.pro文件,添加以下规则:
# 保留Apache Http相关类和方法,避免混淆(日志报错根源就在这) -keep class org.apache.http.** { *; } -keep interface org.apache.http.** { *; } # Facebook SDK 4.x 官方推荐的混淆规则 -keep class com.facebook.** { *; } -keep interface com.facebook.** { *; } -keep enum com.facebook.** { *; } # 保留Facebook SDK依赖的注解 -keepattributes *Annotation* # 如果你用到了Facebook的回调接口,确保回调方法不被混淆 -keepclassmembers class * implements com.facebook.FacebookCallback { void on*(...); }
步骤2:适配Android 6.0+的Apache Http依赖(可选但建议)
如果你的项目用的是Android Gradle Plugin 3.0及以上版本,Android 6.0系统默认移除了Apache Http库,需要在app模块的build.gradle里显式引入:
android { compileSdkVersion 你的版本号 defaultConfig { ... } // 添加这一行 useLibrary 'org.apache.http.legacy' }
步骤3:重新打包测试
完成上面的配置后,重新生成Release APK并安装到设备上,应该就能正常打开应用,不会再崩溃了。
内容的提问来源于stack exchange,提问作者Jean Alvarez
相关产品推荐
相关产品推荐

