weibo_android_sdk icon indicating copy to clipboard operation
weibo_android_sdk copied to clipboard

感觉sina没人了,bintray都停止服务了,sdk也不换个仓库!

Open Edward-going opened this issue 4 years ago • 4 comments
trafficstars

Edward-going avatar May 16 '21 10:05 Edward-going

新浪:爱用不用~

ighsix avatar May 18 '21 08:05 ighsix

临时解决办法(二选一)

  1. 下载 aar 包到本地,本地依赖。
  2. 下载 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>

ilpanda avatar May 18 '21 09:05 ilpanda

但是没有pom文件呀,只有aar文件

fanzhiri avatar Jan 13 '22 09:01 fanzhiri

但是没有pom文件呀,只有aar文件

上传 nexus 的时候,可以选择生成 pom 文件,自己设置版本即可

gujintao1900 avatar Jul 25 '22 11:07 gujintao1900