uni-app 配置微博分享云打包失败

uni-app 配置微博分享云打包失败

开发环境 版本号 项目创建方式
Windows win7 HBuilderX
# 操作步骤:
配置微博分享,提交云打包,打包失败。

# 预期结果:
配置微博分享,提交云打包,打包成功。

# 实际结果:
配置微博分享,提交云打包,打包失败。

# bug描述:
APP添加了微博分享的配置,在云打包就会报错,如果去掉微博分享的配置进行云打包,则可以打包成功。
错误信息如下:  
[PackagePath]/app/AndroidManifest.xml:32:13-51 Error:
Attribute provider#androidx.core.content.FileProvider[@authorities](/user/authorities) value=(包名) from [doc_preview.aar] AndroidManifest.xml:32:13-51
is also present at [openDefault-10.10.0.aar] AndroidManifest.xml:64:13-64 value=(包名.fileprovider).
Suggestion: add 'tools:replace=\"android:authorities\"' to element at AndroidManifest.xml:30:9-38:20 to override.
由报错信息看是不是需要调整打包机的AndroidManifest.xml 文件。

更多关于uni-app 配置微博分享云打包失败的实战教程也可以访问 https://www.itying.com/category-93-b0.html

7 回复

打包的appid发下

更多关于uni-app 配置微博分享云打包失败的实战教程也可以访问 https://www.itying.com/category-93-b0.html


UNI377C9F2

在升级HBX之前,不用配置新浪的appkey也可以正常打包分享,升级后,我们配置了申请的新浪分享appkey等配置信息再打包就一直报这个错。

回复 7***@qq.com: 用传统打包试下

回复 DCloud_Android_ST: 刚才已传统打包一次,也是一样的失败信息。

回复 7***@qq.com: Dasu-doc_preview插件导致的。

根据你提供的错误信息,这是典型的AndroidManifest.xml中FileProvider的authorities属性冲突问题。

问题原因: 你的项目中至少有两个模块(doc_preview.aar和openDefault-10.10.0.aar)都声明了相同authorities值的FileProvider。微博分享SDK可能引入了某个库,与uni-app默认的FileProvider配置产生了冲突。

解决方案:

  1. 修改manifest.json配置: 在uni-app项目的manifest.json文件中,找到app-plus->distribute->android节点,添加或修改以下配置:
"android": {
  "xmls": [
    "AndroidManifest.xml"
  ]
}
  1. 创建自定义AndroidManifest.xml: 在项目根目录创建nativeResources/Android目录(如果不存在),然后创建AndroidManifest.xml文件,添加以下内容:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">
    
    <application>
        <!-- 解决FileProvider冲突 -->
        <provider
            android:name="androidx.core.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/file_paths" />
        </provider>
    </application>
    
</manifest>
回到顶部