uni-app离线本地打包(安卓)配置教程

开发环境

HBuilder X 3.1.18.20210609
Android Studio 4.2.2
JDK 11
gradle 7.1.1
App离线SDK 3.1.18

基本上全都是最新的,不提供链接,大家自行去下载,基本上各大官网都有下载链接,也不用担心不小心装了全家桶。

新建工程

打开Android Studio新建一个空白项目

在这里插入图片描述

选择empty Activity 点击 next

在这里插入图片描述

  • Name 项目名称
  • Package name 包名,在正式环境中,包名应该和公司工程java项目保持一致
  • Save location 本地保存地址
  • Language 一定要选择Java
  • Minimum SDK 对应着需要适配的安卓版本,根据自己的需求来,不建议选择太高

填写完毕点击Finish
在这里插入图片描述

点击右下角的进度条会弹出一个进度的详情的框框,先点击小叉叉,取消依赖的下载

在这里插入图片描述

上面是新建出来默认的配置,默认依赖源是国外的,修改依赖源为国内镜像,速度更快,如下

// Top-level build file where you can add configuration options common to all sub-projects/modules.  

buildscript {
    repositories {
        maven {
            url 'https://maven.aliyun.com/repository/google'
        }
        maven {
            url 'https://maven.aliyun.com/repository/public'
        }
        maven {
            url 'https://maven.aliyun.com/repository/jcenter'
        }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:4.2.2'


        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        maven {
            url 'https://maven.aliyun.com/repository/google'
        }
        maven {
            url 'https://maven.aliyun.com/repository/public'
        }
        maven {
            url 'https://maven.aliyun.com/repository/jcenter'
        }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

在这里插入图片描述

添加uni-app需要的依赖以及其他配置,上面是默认的,修改后如下

plugins {
    id 'com.android.application'
}

android {
    compileSdkVersion 30
    buildToolsVersion "30.0.3"

    defaultConfig {
        applicationId "com.example.demo"
        minSdkVersion 21
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"
    }
    signingConfigs {
        config {
            keyAlias 'test'
            keyPassword '111111'
            storeFile file('test.keystore')
            storePassword '111111'
            v1SigningEnabled true
            v2SigningEnabled true
        }
    }

    buildTypes {
        debug {
            signingConfig signingConfigs.config
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
        release {
            signingConfig signingConfigs.config
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    aaptOptions {
        additionalParameters '--auto-add-overlay'
        ignoreAssetsPattern "!.svn:!.git:.*:!CVS:!thumbs.db:!picasa.ini:!*.scc:*~"
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    lintOptions {
        abortOnError false
    }
}

dependencies {
    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'
}

完成上述操作后就可以下载依赖资源了,点击File > Sync Project with Gradle File,等待依赖下载的同时可以继续下面的准备工作

在这里插入图片描述

当依赖下载完成之后,项目就归gradle管理了,所以在开发工具中,目录结构看着会发生变化,将目录结构修改为project就好

在这里插入图片描述

删除一些初始化的东西,不然无法打包成功,选中的文件直接删除即可,如下图

在这里插入图片描述

添加外部依赖的依赖,从App离线SDK包中,找到 latest > 3.1.18 > [email protected]_20210610 > HBuilder-Integrate-AS > simpleDemo > libs,将里面的文件全都复制到 app > libs 中

在这里插入图片描述

添加uni-app需要的资源文件
App离线SDK包中的 latest > 3.1.18 > [email protected]_20210610 > HBuilder-Integrate-AS > simpleDemo > src > main > assets 直接复制出来,放到app > src > main 下面,然后删除apps目录下面所有的文件

在这里插入图片描述

打开HBuilder X,新建一个项目,这一块就不详细介绍了,随便选择一个模板就好,然后生成本地资源

在这里插入图片描述

将生成的资源文件复制到apps文件夹下面,如下图

在这里插入图片描述
在这里插入图片描述

修改配置,找到data > dcloud_control.xml,修改appid为生成的资源文件的目录名即可

在这里插入图片描述

生成Android平台的签名证书,点击Build > Generate Signed Bundle / APK…

在这里插入图片描述

选择APK,点击 Next

在这里插入图片描述

选择新建

在这里插入图片描述

选择生成目录

在这里插入图片描述

选择项目的app目录下面,文件名称自己取,我这里给的是test

在这里插入图片描述

默认生成的后缀是jks,将后缀修改为 .keystore

在这里插入图片描述

填写信息,密码我都是取的111111,别名是test,完成后点OK

在这里插入图片描述

这里信息回显后直接next

在这里插入图片描述

都勾上,然后选择release,点击finish,这样就生成好证书了,在app目录下面

在这里插入图片描述

然后修改build.gradle文件配置,如果是直接复制我上面的配置,并且证书生成方式也和我一样,就可以什么都不用修改,否则就根据自己生成方式进行修改

在这里插入图片描述

申请appkey,登录 DCloud管理后台,选择自己的项目,然后点击离线打包Key管理,就会看到如下页面,这里需要Android的证书签名SHA1

在这里插入图片描述

查看证书签名信息,点击gradle,找到这个命令,双击执行就可以看到证书信息

在这里插入图片描述

填写申请证书的一些信息,将上图框出来的SHA1值复制到Android证书签名中即可,包名在build.gradle中也有,然后不需要ios的,就取消勾选

在这里插入图片描述

完了就保存,就生成了appkey的信息了

在这里插入图片描述

回到开发工具,先删除红框框出来的东西,然后添加下面的配置

在这里插入图片描述

下面的配置是官方的配置,直接复制即可

        <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"
            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="com.example.uniapp.dc.fileprovider"
            android:exported="false"
            android:grantUriPermissions="true">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/dcloud_file_provider" />
        </provider>

下面的配置就是appkey的配置

        <meta-data
            android:name="dcloud_appkey"
            android:value="申请的appkey" />

完整配置文件如下

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.demo">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true">

        <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"
            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="com.example.uniapp.dc.fileprovider"
            android:exported="false"
            android:grantUriPermissions="true">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/dcloud_file_provider" />
        </provider>

        <meta-data
            android:name="dcloud_appkey"
            android:value="申请的appkey" />
    </application>
</manifest>

以上就完成了全部配置,然后就可以进行打包了,根据下面的操作就可以进行打包了

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_33733799/article/details/118580182
今日推荐