zwxbest
zwxbest
  • 发布:2026-02-01 23:37
  • 更新:2026-02-01 23:49
  • 阅读:18

【已解决】用本地制作的自定义基座运行官方的uni-starter项目,提示打包时未添加fingerprint模块

分类:uni-app

用离线的自定义基座运行官方的uni-starter,能进入主界面,点击设置,提示“打包时未添加fingerprint模块”,因为这里应该有一个指纹解锁的功能。 

制作离线基座的时候,已经参考模块配置加了fingerprint-release.aar和相关配置,hbuilder中的manifest.json也勾选了fingerprint。

AndroidManifest.xml 和assets/data/dcloud_properties.xml也按照教程加了东西。

这是manifest.json前面的配置,Fingerprint已经有了。

    "name" : "uni-starter",  
    "appid" : "__UNI__0A8921D",  
    "description" : "云端一体应用快速开发基本项目模版",  
    "versionName" : "1.0.0",  
    "versionCode" : "100",  
    "transformPx" : false,  
    "app-plus" : {  
        "usingComponents" : true,  
        "nvueStyleCompiler" : "uni-app",  
        "compilerVersion" : 3,  
        "splashscreen" : {  
            "alwaysShowBeforeRender" : true,  
            "waiting" : true,  
            "autoclose" : true,  
            "delay" : 0  
        },  
        "modules" : {  
            "OAuth" : {},  
            "Fingerprint" : {}  
        },

把uni-starter运行到自定义基座之前,也检查了unpackage->debug下,打出来的android_debug.apk,反编译也能看到fingerprint包的相关类,以及assets/data/dcloud_properties.xml的改动。

我运行自定义基座前,也尝试过先卸载基座,再重新安装运行,还是报这个。

一开始也报了个未添加Oauth模块的报错,同样按照教程在AS中把一键登录、微信登录的依赖都加上了,还是报错。

有可能和fingerprint报错是一个原因,这个简单,先找这个的原因吧。

能进入主界面,除了Oauth报错,到我的->设置,就弹出来“未添加fingerprint模块”,因为这里本来有一个指纹功能的菜单。

2026-02-01 23:37 负责人:无 分享
已邀请:
Ask小助手

Ask小助手

欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

问题本质
uni-starter 在「设置」页里调用了 uni.checkIsSoterEnrolledInDevice / uni.startSoterAuthentication 等 API,
这些 API 在运行时会去判断当前基座是否包含 Fingerprint 模块。
离线自定义基座即使已经把 fingerprint-release.aar 拷进 libs,也必须在 dcloud_properties.xml 里把模块名写对,否则运行时会认为模块不存在,弹出「打包时未添加 fingerprint 模块」。

解决步骤(离线自定义基座)

  1. 确认 aar 已放入
    app/libs/fingerprint-release.aar

  2. 确认 build.gradle 已依赖

    implementation fileTree(dir: 'libs', include: ['*.aar'])  
  3. 关键 修改 assets/data/dcloud_properties.xml
    <features> 节点里增加一行:

    <feature name="Fingerprint" value="io.dcloud.feature.fingerprint.FingerprintFeatureImpl"/>  

    注意大小写必须完全一致,不能写成 fingerprint

  4. 如果同时用到 OAuth(一键登录、微信登录),也一并检查:

    <feature name="OAuth" value="io.dcloud.feature.oauth.OAuthFeatureImpl"/>  
  5. Clean & Rebuild 生成新的 apk,
    把生成的 android_debug.apk 放到项目根目录 /unpackage/debug 下,
    在 HBuilderX 里「运行到手机 → 自定义基座 → 本地基座」重新安装。

  6. 首次安装前卸载旧基座,避免缓存。

验证
重新进入「设置」页,不再弹出提示,指纹菜单可以正常显示即成功。

如仍提示「未添加 OAuth 模块」,按同样方式检查 OAuth 的 feature 是否已写入 dcloud_properties.xml。

内容为 AI 生成,仅供参考
zwxbest

zwxbest (作者)

解决了,加<feature>的时候加错位置了。。。。

习惯加到最后,没仔细看。。。

        <feature name="Fingerprint" value="io.dcloud.feature.fingerprint.FingerPrintsImpl"/>  
    </features>  

    <services>  
        <service name="push" value="io.dcloud.feature.aps.APSFeatureImpl"/>  
        <service name="Statistic" value="io.dcloud.feature.statistics.StatisticsBootImpl"/>  
        <service name="Downloader" value="io.dcloud.net.DownloaderBootImpl"/>  
        <!--<service name="Maps" value="io.dcloud.js.map.MapInitImpl"/>-->  
    </services>  

    <feature name="OAuth" value="io.dcloud.feature.oauth.OAuthFeatureImpl">  
        <module name="OAuth-IGETui" value="io.dcloud.feature.igetui.GeTuiOAuthService"/>  
    </feature>  
    <feature name="OAuth" value="io.dcloud.feature.oauth.OAuthFeatureImpl">  
        <module name="OAuth-Weixin" value="io.dcloud.feature.oauth.weixin.WeiXinOAuthService"/>  
    </feature>  

    <feature name="Fingerprint" value="io.dcloud.feature.fingerprint.FingerPrintsImpl"/>

要回复问题请先登录注册