Meituan-Dianping / walle

Android Signature V2 Scheme签名下的新一代渠道包打包神器
Apache License 2.0
6.77k stars 1.08k forks source link

项目中用shareSdk第三方分享,walle打出来的包没有sharesdk.xml,导致分享失败 #247

Open ltym2016 opened 6 years ago

ltym2016 commented 6 years ago

项目中第三方分享用的是sharesdk,但是用walle打包出来,发现分享失败,正常AS打包可以正常分享,用AS的Analyze apk分析两个包发现,walle打出来的包在assets下没有sharesdk.xml文件,不知道是什么原因?

jaxhuan commented 6 years ago

@ltym2016 这么久了,不知道用得上不。 原因:运行./gradlew clean assembleReleaseChannels命令来打包时,R文件会被删掉,此时生成的asset/sharesdk.xml也被删掉了。 解决:打包之前使用Android Stuido的Build=>Clean Project来替代clean命令,然后./gradlew assembleReleaseChannels来生成渠道包。 参考链接:https://segmentfault.com/a/1190000015554496#articleHeader3

feb07 commented 5 years ago

这不是walle打包的问题,./gradlew clean assembleRelease 执行这个打包一样会有问题,是shareSdk Gradle集成方式的问题。

ltym2016 commented 5 years ago

这不是walle打包的问题,./gradlew clean assembleRelease 执行这个打包一样会有问题,是shareSdk Gradle集成方式的问题。

shareSdk 说是walle的问题。。。。

feb07 commented 5 years ago

但是./gradlew clean assembleRelease这个指令 已经跟walle没关系了,把项目中有关walle的配置删除了,gradlew clean assembleRelease打包sharesdk分享直接回调oncancle。这可以demo马上试出来的

WatchMan-Wang commented 4 years ago

ShareSDK.xml文件主要还是被clean任务删掉,咨询过对方的技术支持,MobSDK提供了自定义生成ShareSDK.xml的文件目录,给出个解决方案,亲测有效;就是添加一个属性: placeConfigHere '项目包名'
ShareSDK { placeConfigHere '项目包名' devInfo {。。。} }