uni-app之android离线打包

这篇具有很好参考价值的文章主要介绍了uni-app之android离线打包。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一 AndroidStudio创建项目

1.1,上一节演示了uni-app云打包,下面演示怎样androidStudio离线打包。在AndroidStudio里面新建空项目

uni-app之android离线打包,android,uni-app

uni-app之android离线打包,android,uni-app

1.2,下载uni-app离线SDK,离线SDK主要用于App本地离线打包及扩展原生能力,SDK下载链接https://nativesupport.dcloud.net.cn/AppDocs/download/android.html#

uni-app之android离线打包,android,uni-app

1.3,SDK目录说明

    |-- HBuilder-Hello                App离线打包演示应用
    |-- HBuilder-Integrate-AS        集成uni-app的最简示例
    |-- SDK                            SDK库文件目录
    |-- Feature-Android.xls            Android平台各扩展Feature API对应的详细配置
    |-- Readme.txt                    版本说明文件及注意事项
    |-- UniPlugin-Hello-AS            uni原生插件开发示例

1.4,SDK目录,后面androidStudio需要用到SDK里面资源

uni-app之android离线打包,android,uni-app

1.5, AndroidStudio配置uni-sdk,将uni-sdk基础arr包复制到AndroidStudio的libs目录下

lib.5plus.base-release.aar

android-gif-drawable-release@1.2.23.aar

uniapp-v8-release.aar

oaid_sdk_1.0.25.aar

install-apk-release.aar

breakpad-build-release.aar

uni-app之android离线打包,android,uni-app

1.6,拷贝assets里面的data目录,到androidStudio里面的assets里面

uni-app之android离线打包,android,uni-app

1.7,app目录的build.gradle配置项目依赖dependencies,AndroidX版本需添加如下资源

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.2.83'
implementation 'androidx.webkit:webkit:1.3.0'

uni-app之android离线打包,android,uni-app

1.8, uni-app配置时需要在build.gradle中添加aaptOptions配置

aaptOptions {  
    additionalParameters '--auto-add-overlay'  
    ignoreAssetsPattern "!.svn:!.git:.*:!CVS:!thumbs.db:!picasa.ini:!*.scc:*~"  
}  
 

uni-app之android离线打包,android,uni-app

1.9, androidStudio配置支持aar加载,新老gradle构建工具aar配置有所变化

老版本在app的build.gradle中配置

uni-app之android离线打包,android,uni-app

新版本在仓库级别里面配置,项目根目录里面的build.gradle或者settings.gradle

uni-app之android离线打包,android,uni-app

1.10,在app的build.gradle中引用aar

uni-app之android离线打包,android,uni-app

二,uni-app项目打包app资源

2.1 获取appkey,登录开发者平台注册为开发者,https://dev.dcloud.net.cn/

uni-app之android离线打包,android,uni-app

2.2 找到刚创建的uni-app项目

uni-app之android离线打包,android,uni-app

uni-app之android离线打包,android,uni-app 2.3 创建证书

uni-app之android离线打包,android,uni-app

2.3 查看证书并复制sha1值,离线打包key会用到

uni-app之android离线打包,android,uni-app

2.4 点击离线打包key管理,会跳到各平台信息配置,配置sha1,MD5,SHA256和包名

uni-app之android离线打包,android,uni-app

 appid就是androidStudio项目里面的applicationId

uni-app之android离线打包,android,uni-app

2.5 平台信息提交之后就可以创建key了

uni-app之android离线打包,android,uni-app

创建之后进行查看,AppKey不区分debug和release模式,Andorid如需要调试需要使用申请AppKey时的证书

uni-app之android离线打包,android,uni-app

uni-app之android离线打包,android,uni-app

2.6 打包uni-app资源包,发行-原生app本地打包-生成app资源

uni-app之android离线打包,android,uni-app 控制台打包进度,成功后打开目录,将ID级的整个目录复制

uni-app之android离线打包,android,uni-appuni-app之android离线打包,android,uni-app

2.7 androidStudio的assets创建一个apps的目录,将app资源包拷贝到androidStudio项目的assets目录里面,注意:dcloud_control.xml里面的appid要改为对应的id。

uni-app之android离线打包,android,uni-app

2.8 androidStudio项目的app-build.gradle 里面也改为对应的版本

uni-app之android离线打包,android,uni-app

三,androidStudio配置key

3.1 主APP的build.gradle文件的android节点下配置应用的签名信息,先下载证书

uni-app之android离线打包,android,uni-app

3.2 配置正式签名和调试签名

signingConfigs {
    config {
        keyAlias '__uni__ee84bbf'
        keyPassword 'slvjh2d2'
        storeFile file('slvjh2d2.keystore') // 路径为相对路径或绝对路径
        storePassword 'slvjh2d2'
        v1SigningEnabled true //兼容v1
        v2SigningEnabled true //兼容v2
    }
}

uni-app之android离线打包,android,uni-app

buildTypes {
    release {
        signingConfig signingConfigs.config
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
    debug  {
        signingConfig signingConfigs.config
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }

uni-app之android离线打包,android,uni-app3.3 Androidmanifest.xml配置key

<?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
        ...>
        <meta-data
            android:name="dcloud_appkey"
            android:value="替换为自己申请的Appkey" />
</manifest>

uni-app之android离线打包,android,uni-app

3.4 配置清单的application和应用入口,直接用unisdk的资源就行

uni-app之android离线打包,android,uni-app

整个清单文件如下:

<?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
        android:name="io.dcloud.application.DCloudApplication"
        android:allowBackup="true"
        android:dataExtractionRules="@xml/data_extraction_rules"
        android:fullBackupContent="@xml/backup_rules"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/Theme.UniApp"
        tools:targetApi="31">

        <!-- 应用入口 -->
        <activity
            android:name="io.dcloud.PandoraEntry"
            android:configChanges="orientation|keyboardHidden|screenSize|mcc|mnc|fontScale"
            android:exported="true"
            android:hardwareAccelerated="true"
            android:theme="@style/TranslucentTheme"
            android:windowSoftInputMode="adjustResize"
            tools:ignore="WrongManifestParent">
            <intent-filter>
                <data android:scheme="hbuilder" />
                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
            </intent-filter>
            <intent-filter>
                <data android:mimeType="image/*" />
                <action android:name="android.intent.action.SEND" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <meta-data
            android:name="dcloud_appkey"
            android:value="221fedc4b1f1f2087f96c7120ca8d3b9" />
    </application>
</manifest>

四 调试运行和打包

4.1 出现主题冲突错误

uni-app之android离线打包,android,uni-app

那就删掉项目中的style.xml ,同时清单文件里面的application的主题也更换为透明主题

修改前

uni-app之android离线打包,android,uni-app

 修改后

uni-app之android离线打包,android,uni-app

再次运行可以安装成功了 

4.2  安装后但运行失败,报找不到activity类错误

uni-app之android离线打包,android,uni-app

然后对比了下SDK的清单,发现确实少注册了一个类,那就注册上

<activity
	android:name="io.dcloud.PandoraEntryActivity"
	android:launchMode="singleTask"
	android:configChanges="orientation|keyboardHidden|screenSize|mcc|mnc|fontScale|keyboard|smallestScreenSize|screenLayout|screenSize|uiMode"
	android:hardwareAccelerated="true"
	android:permission="com.miui.securitycenter.permission.AppPermissionsEditor"
	android:screenOrientation="user"
	android:theme="@style/DCloudTheme"
	android:windowSoftInputMode="adjustResize"
	android:exported="true">

	<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=" " />
	</intent-filter>
</activity>

4.3 再次运行发现可以成功了跑起来了

uni-app之android离线打包,android,uni-app

 4.4 androidStudio选择build-generate signed bundle//Apk,打包apk

uni-app之android离线打包,android,uni-app

uni-app之android离线打包,android,uni-app4.5 选择证书密钥

uni-app之android离线打包,android,uni-app

4.6 填写签名信息

uni-app之android离线打包,android,uni-app

4.7 选择创建正式包

uni-app之android离线打包,android,uni-app 4.8 OK,打包成功

uni-app之android离线打包,android,uni-app

uni-app之android离线打包,android,uni-app 4.9 正式apk安装到手机也可以运行成功,离线打包就完成了

uni-app之android离线打包,android,uni-app

4.10 主要步骤文章来源地址https://www.toymoban.com/news/detail-694178.html

  • 新建uni项目生成uni-appid
  • 开发者平台生成密钥证书并生成appkey
  • 导出uni项目的app资源
  • 新建androidStudio项目,拷贝aar,新建assets的data
  • 拷贝app资源到androidStudio的apps目录
  • androidStudio项目清单文件配置入口和appkey,并统一appid和版本
  • 调试打包生成正式apk

到了这里,关于uni-app之android离线打包的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • uni-app之android项目云打包

    1,项目根目录,找到mainfest.json,如果appid是空的,需要生成一个appid  2,点击重新获取appid,这个时候需要登录,那就输入账号密码登录下 3,登陆后可以看到获取appid成功 4,选择栏目运行选项,再选择云打包选项,这时候弹出一个云打包配置页面 5,需要配置密钥,可以通

    2024年02月10日
    浏览(45)
  • uni-app Android studio 本地打包 【图文讲解】

    需要修改文件列表 appsrcmainresvaluesstrings.xml 修改app名称 appsrcmainresvaluesAndroidManifest.xml 修改 包名 以及 uni-app 开发者后台生成的 离线打包可key simpleDemo 目录下的 准备安卓开发环境 (这里忽略,之前有文章讲解) 安卓开发环境 https://nativesupport.dcloud.net.cn/AppDocs/download/an

    2024年02月03日
    浏览(74)
  • uni-app云打包(android)(自有证书、云端证书、公共测试证书)

    发行-原生App-云打包 1、使用自有证书 ①进入香蕉云编(这里采用的证书从 香蕉云编 进行生成) 香蕉云编-app打包上架工具类平台 ②进入页面选择 “生成签名证书” - \\\"立即创建证书\\\"  ③选择 “安卓证书生成” - “创建安卓证书” ④ 填写相关信息完成创建  ⑤成功后,下载

    2024年02月12日
    浏览(62)
  • 用 Android Studio 打包 uni-app 的安卓apk;手把手教程、巨详细避坑

    Uni-app 离线打包 apk 1. Android Studio 下载 Android Studio官网 2. HBuilderX下载 HBuilderX下载 3. App离线SDK下载 Android 离线SDK - 正式版 下载后解压文件,将 HBuilder-Integrate-AS 重命名 build-template 并拷贝到一个专门打包用的文件夹下作为打包模板 该文件夹中有一个 simpleDemo 文件夹 即 build-temp

    2024年02月04日
    浏览(65)
  • 【uni-app系列】uni-app之App打包

    选择菜单项 “发行” - “原生App-云打包”: 输入相关信息: 第一次安装时会提示安装依赖: 提示打包校验信息,点击【继续打包】: 如果没有实名认证,提示如下信息: 可以通过修改 manifest.json 取消通讯录权限或进行实名认证处理,本文通过实名认证处理。 登录 DCloud

    2024年02月08日
    浏览(76)
  • uni-app云打包与本地打包

    uni-app打包方式目前有两种,云打包和本地打包,主要介绍本地打包, 开始使用打包之前,我们先看一下【 发行 】的工具栏,我们来简单介绍一下云打包与本地打包的区别: 原生APP-云打包: 原生APP-本地打包: 用HBuilderX打开要打包的项目 选中项目列表中的项目右击选择发行

    2023年04月10日
    浏览(94)
  • 『UniApp』uni-app-打包成App

    大家好,我是 BNTang, 在上一节文章中,我给大家详细的介绍了如何将我开发好的项目打包为微信小程序并且发布到微信小程序商店 趁热打铁,在来一篇文章,给大家详细的介绍如何将项目打包成APP。 打包 App 也是一样的,首先需要配置关于 App 应用的基础信息,打开 manifest

    2024年02月04日
    浏览(108)
  • uni-app打包之云打包与本地打包

    背景 由于早之前发的文章关于app的大杂烩文章太杂了, 所以打算给拆一拆,这篇是uni-app打包篇 uni-app打包方式目前有两种,云打包和本地打包,主要介绍本地打包,云打包比较简单,只进行简单的介绍 云打包 用HBuilderX打开要打包的项目 选中项目列表中的项目右击选择发行

    2024年02月02日
    浏览(59)
  • uni-app项目打包成apk(本地打包篇)

            最近可能要接一个uni-app的项目,之前没有接触过,因此学习了一下,好在uni-app基本算是vue和微信小程序的结合体,所以写代码方面问题不是太多,不懂的百度一下基本都能处理。写完demo之后,demo的内容应该能告诉客户我可以做,但我一开始是先用手机录制视频

    2024年02月03日
    浏览(52)
  • 【UniApp】-uni-app-打包成网页

    经过上一篇文章的介绍,已经将这个计算器的计算功能实现了,接下来就是我们项目当中的一个发包上线阶段,我模拟一下,目的就是为了给大家介绍一下,uni-app是如何打包成网页的。 除了可以打包成网页,uni-app还可以打包成小程序、App、H5、快应用等等,后面在单独开文

    2024年02月04日
    浏览(72)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包