weibo_android_sdk
weibo_android_sdk copied to clipboard
感觉sina没人了,bintray都停止服务了,sdk也不换个仓库!
trafficstars
新浪:爱用不用~
临时解决办法(二选一)
- 下载 aar 包到本地,本地依赖。
- 下载 aar 包然后上传到自己公司的 nexus,远程依赖上传的地址。
遇到的问题
我使用友盟从 4.4.4 升级到 10.10.0 遇到的问题:
因为微博 SDK 适配 Android 11 ,支持通过 FileProvider 分享。作者在 aar 包的 AndroidManifest.xml 当中声明如下:
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="${applicationId}.fileprovider"
android:exported="false"
android:grantUriPermissions="true" >
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/filepaths" />
</provider>
因为我使用了友盟,已经集成了其他分享。主项目当中也使用了该 Provider,并且已经存在 filepaths.xml 文件。因此,编译时会报冲突错误如下:
Manifest merger failed : Attribute provider#android.support.v4.content.FileProvider@authorities value=(cn.com.pcauto.pocket.fileProvider) from AndroidManifest.xml:164:13-64
is also present at [com.sina.weibo.sdk:opendefault:10.10.0] AndroidManifest.xml:64:13-64 value=(cn.com.pcauto.pocket.fileprovider).
Suggestion: add 'tools:replace="android:authorities"' to <provider> element at AndroidManifest.xml:162:9-172:20 to override.
第二个冲突错误如下:
Manifest merger failed : Attribute meta-data#android.support.FILE_PROVIDER_PATHS@resource value=(@xml/provider_paths) from AndroidManifest.xml:171:17-55
is also present at [com.sina.weibo.sdk:opendefault:10.10.0] AndroidManifest.xml:69:17-50 value=(@xml/filepaths).
Suggestion: add 'tools:replace="android:resource"' to <meta-data> element at AndroidManifest.xml:169:13-171:58 to override.
根据编译器的提示,我在主工程 AndroidManifest.xml 的 provider 标签内容如下(添加了 tools:replace=):
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="${applicationId}.fileProvider"
android:exported="false"
android:grantUriPermissions="true"
tools:replace="android:authorities"
>
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths"
tools:replace="android:resource" />
</provider>
然后在 provider_paths.xml 文件添加了微博的 FilePath:
<?xml version="1.0" encoding="utf-8"?>
<paths>
......
<!-- 友盟 -->
<external-files-path
name="umeng_cache"
path="umeng_cache/" />
<!-- QQ -->
<external-files-path
name="opensdk_external"
path="Images/tmp" />
<root-path
name="opensdk_root"
path="" />
<!-- 新浪微博 官方分享SDK 10.10.0共享路径 -->
<external-files-path
name="share_files"
path="." />
</paths>
但是没有pom文件呀,只有aar文件
但是没有pom文件呀,只有aar文件
上传 nexus 的时候,可以选择生成 pom 文件,自己设置版本即可