uniapp安卓本地打包流程

本文详细指导如何在Android平台上整合Dcloud SDK,包括下载SDK、申请AppKey、设置AndroidManifest,以及配置必要的依赖和活动。关键步骤包括设置Android工程、添加uniapp所需的库、配置appkey和文件提供者。
摘要由CSDN通过智能技术生成

1.下载好Android平台需要的SDK包(里面有Android打包需要的资源文件),到Dcloud开发者平台申请appkey。申请appkey需要填的资料包括uniapp项目的appid(DCloud appid(以后简称 appid) 是 DCloud 应用的唯一标识,在 DCloud 提供的所有服务中,都会以 appid 来标记一个应用)、android包名(android项目app目录下build.grade文件内applicationId字段)、app打包用的签名文件。三者为唯一对应关系

 

 2.到android studio新建Android工程(注意:语言选择不要选择kotlin,uniapp目前不支持)

3.将下载的sdk包里libs目录下的lib.5plus.base-release.aar、android-gif-drawable-release@1.2.23.aar、uniapp-v8-release.aar和oaid_sdk_1.0.25.aar文件拷贝到安卓项目libs目录下

4.如果Android项目为Androidx项目则在app build.grade文件中添加如下依赖:

implementation fileTree(include: ['*.jar'], dir: 'libs')

implementation fileTree(include: ['*.aar'], dir: 'libs')

implementation 'androidx.appcompat:appcompat:1.0.0'

implementation 'androidx.legacy:legacy-support-v4:1.0.0'

implementation 'androidx.recyclerview:recyclerview:1.0.0'

implementation 'com.facebook.fresco:fresco:2.5.0'

implementation "com.facebook.fresco:animated-gif:2.5.0"

implementation 'com.github.bumptech.glide:glide:4.9.0'

implementation 'com.alibaba:fastjson:1.1.46.android'

如果Android工程为support项目 ,则如需添加如下依赖:

implementation fileTree(dir: 'libs', include: ['*.aar', '*.jar'], exclude: [])

implementation "com.android.support:support-v4:28.0.0"

implementation "com.android.support:appcompat-v7:28.0.0"

implementation 'com.android.support:recyclerview-v7:28.0.0'

implementation 'com.facebook.fresco:fresco:1.13.0'

implementation "com.facebook.fresco:animated-gif:1.13.0"

implementation 'com.github.bumptech.glide:glide:4.9.0'

implementation 'com.alibaba:fastjson:1.1.46.android'

如何区分是否为androidx项目,打开工程gradle.properties文件查看useAndroidX字段

3.2.5及以上版本支持了Java 8,集成时需要在项目的build.gradle添加如下配置:

5.将之前申请的appkey配置到android工程里,打开Androidmanifest.xml, 导航到Application节点,创建meta-data节点,name为dcloud_appkey,value为申请的AppKey如下:

6.删除android工程原本的activity配置,将下述内容添加到Androidmanifest.xml的application节点中

<activity android:name="io.dcloud.PandoraEntry" android:configChanges="orientation|keyboardHidden|keyboard|navigation" android:label="@string/app_name" android:launchMode="singleTask" android:hardwareAccelerated="true" android:theme="@style/TranslucentTheme" android:screenOrientation="user" android:windowSoftInputMode="adjustResize" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="io.dcloud.PandoraEntryActivity" android:launchMode="singleTask" android:configChanges="orientation|keyboardHidden|screenSize|mcc|mnc|fontScale|keyboard|smallestScreenSize|screenLayout|screenSize" android:hardwareAccelerated="true" android:permission="com.miui.securitycenter.permission.AppPermissionsEditor" android:screenOrientation="user" android:theme="@style/DCloudTheme" android:windowSoftInputMode="adjustResize"> <intent-filter> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <action android:name="android.intent.action.VIEW" /> <data android:scheme="h56131bcf" /> </intent-filter> </activity> <!--provider节点必须添加--> <provider android:name="io.dcloud.common.util.DCloud_FileProvider" android:authorities="${apk.applicationId}.dc.fileprovider" android:exported="false" android:grantUriPermissions="true"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/dcloud_file_provider" /> </provider>

${apk.applicationId} 必须替换成当前应用的包名!!!!!!!

7. 在android工程里创建assets文件夹(与java目录同级),将第一步下载的SDK->assets->data文件夹拷贝到刚刚创建的assets文件夹下,如下图:

8.在assets目录下创建apps文件夹,将HBuilderX中的项目导出,将导出的资源复制到assets->apps下,如下图所示:

9.修改dcloud_control.xml中的appid为拷贝过来的uni-app的id,确保dcloud_control.xml中的appid与manifest.json中的id与文件夹名一致,如下图所示:

10.配置完以上就可以用之前申请appkey用到的签名文件打包Android安装包了。(uniapp的appid、Android工程的包名,打包的签名文件三者必须对应起来)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值