flutter sharesdk 微信登录报错 SharesdkPlugin: platName null ====> {platform=22}

最近学习flutter 加入第三方登录和分享功能,使用sharesdk在debug模式下可以正常微信登录,但是打release包后,无法登陆报错:SharesdkPlugin: platName null ====> {platform=22},这个问题困扰了好久,也询问了mob的技术支持,对方也排查了很久,最后只能让我自己按照demo排查,因为demo没有这个问题,后来一个一个排查各个配置文件后发现项目的setting.gradle文件中的内容和demo的不一样,自带的setting.gradle是项目生成时系统自己生成的,不适合flutter,最后把所有容易漏掉的地方记下,方便以后查找:

1、app下的build.gradle中的buildType需要添加ndk配置,代码如下:

 buildTypes {
        release {
            ndk{
                //这里其实我觉可以直接是用"armeabi-v7a",但国内几个大哥之前使用的都是"armeabi"
                abiFilters "armeabi", "armeabi-v7a", "arm64-v8a","x86"
            }
            // TODO: Add your own signing config for the release build.
            // Signing with the debug keys for now, so `flutter run --release` works.
            signingConfig signingConfigs.release
            shrinkResources false
            debuggable false
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug{
            ndk {
                //这里要加上,否则debug包会出问题,后面三个为可选,x86建议加上不然部分模拟器回报错
                abiFilters "armeabi", "armeabi-v7a", "arm64-v8a","x86"
            }
            debuggable true
            minifyEnabled false
            signingConfig signingConfigs.release
            shrinkResources false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

建议release下的ndk写全,否则有些设备应用无法启动。

2、settings.gradle文件改为demo中的配置:

def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()

def plugins = new Properties()
def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins')
if (pluginsFile.exists()) {
    pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) }
}

注意:以下代码如果没有设置Flavor,请不要添加,不然编译报错:Gradle build failed to produce an .apk file. It‘s likely that this file was generated under XXX

plugins.each { name, path ->
    def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile()
    include ":$name"
    project(":$name").projectDir = pluginDirectory
}

如果你只修改了第一步,有可能也会报错。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值