uni-app之android离线打包

一 AndroidStudio创建项目

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

uni-app之android离线打包_第1张图片

uni-app之android离线打包_第2张图片

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

uni-app之android离线打包_第3张图片

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离线打包_第4张图片

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

lib.5plus.base-release.aar

[email protected]

uniapp-v8-release.aar

oaid_sdk_1.0.25.aar

install-apk-release.aar

breakpad-build-release.aar

uni-app之android离线打包_第5张图片

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

uni-app之android离线打包_第6张图片

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离线打包_第7张图片

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

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

uni-app之android离线打包_第8张图片

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

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

uni-app之android离线打包_第9张图片

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

uni-app之android离线打包_第10张图片

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

uni-app之android离线打包_第11张图片

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

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

uni-app之android离线打包_第12张图片

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

uni-app之android离线打包_第13张图片

uni-app之android离线打包_第14张图片 2.3 创建证书

uni-app之android离线打包_第15张图片

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

uni-app之android离线打包_第16张图片

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

uni-app之android离线打包_第17张图片

 appid就是androidStudio项目里面的applicationId

uni-app之android离线打包_第18张图片

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

uni-app之android离线打包_第19张图片

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

uni-app之android离线打包_第20张图片

uni-app之android离线打包_第21张图片

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

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

uni-app之android离线打包_第23张图片

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

uni-app之android离线打包_第24张图片

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

uni-app之android离线打包_第25张图片

三,androidStudio配置key

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

uni-app之android离线打包_第26张图片

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

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

uni-app之android离线打包_第27张图片

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离线打包_第28张图片3.3 Androidmanifest.xml配置key


    xmlns:tools="http://schemas.android.com/tools"> 

             ...>
                    android:name="dcloud_appkey"
            android:value="替换为自己申请的Appkey" />

uni-app之android离线打包_第29张图片

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

uni-app之android离线打包_第30张图片

整个清单文件如下:




    

        
        
            
                
                

                
                
            
            
                
                
                
            
            
                
                
            
        

        
    

四 调试运行和打包

4.1 出现主题冲突错误

uni-app之android离线打包_第31张图片

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

修改前

uni-app之android离线打包_第32张图片

 修改后

uni-app之android离线打包_第33张图片

再次运行可以安装成功了 

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

uni-app之android离线打包_第34张图片

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



	

		

		

		

		
	

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

uni-app之android离线打包_第35张图片

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

uni-app之android离线打包_第36张图片

uni-app之android离线打包_第37张图片4.5 选择证书密钥

uni-app之android离线打包_第38张图片

4.6 填写签名信息

uni-app之android离线打包_第39张图片

4.7 选择创建正式包

uni-app之android离线打包_第40张图片 4.8 OK,打包成功

uni-app之android离线打包_第41张图片

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

uni-app之android离线打包_第43张图片

4.10 主要步骤

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

你可能感兴趣的:(android,uni-app)