当前位置: 首页 > news >正文

【uni-app】【Android studio】手把手教你运行uniapp项目到Android App

运行到Android App基座

  • 选择运行到Android App基座
    在这里插入图片描述
  • 选择运行项目
    1、连接手机,在手机上选择 传输文件。
    在这里插入图片描述
    2、打开 设置-> 关于本机 -> 版本信息->连续点击4-5次版本号 ,输入手机密码,系统就进入了开发者模式。
    在这里插入图片描述
    3、设置 > 其他设置 > 开发者选项 > 打开开发者选项 > 打开USB调试
    4、回到Hbuilder,点击刷新,选择设备,运行项目。
    在这里插入图片描述
  • 运行失败
    请使用手机助手手动安装XXX.apk到手机上,并重新运行真机调试
    不知道为什么文件就是传输不到手机上,下载了文件助手也不连接不到手机。所以用最简单的办法吧。
    这个报错是因为Hbuilder没办法把apk发送并安装到手机上,打开它说的那个目录C:\Users\[自己的目录]\Downloads\HBuilderX.3.7.11.20230427\HBuilderX\plugins\launcher\base\android_base.apk,直接把apk微信发送到手机上,然后手动改名字,点击安装,安装好了就有这个图标。
    在这里插入图片描述
    安装好了之后,回到电脑Hbuilder,重新运行。
    出现的错误:
    Failed to connect to localhost/127.0.0.1:8080
    手机HBuilder关掉,电脑重新编译,多试两次就好了。

运行到模拟器

  • 下载安装Android Studio,uni-app官方有提供下载地址和安装教程,我这里说点官方没详细说的。下载完,安装的时候一直默认的往下点就好了。安装好studio之后。
    遇到的问题
    1、点开SDK Manager,发现没有SDK Platform。跟着这个教程来,真的很详细。
    在这里插入图片描述
    2、修改SDK目录,然后安装的时候没成功,也不是报错,就是说包已存在,就用了已存在的包。看到这个评论,修改了路径,往上一层移了一下。
    在这里插入图片描述
    3、下载包失败:因为我有“科技”支持,所以这里代理选的Auto-detect。大家可以试一下Check connection,从后面下载的detail里面可以看到是从https://dl.google.com下载安装包的,所以就用这个网址去测试就行,这个能测通那就说明后面的安装网络是没有问题的。
    在这里插入图片描述
    一定是出现下面的日志才说明安装成功了,不然点了finish回来也选不了sdk platform和sdk tools。
    在这里插入图片描述
    按照上面那个详细教程继续即可,天知道我试了多久才总算成功了。一把辛酸泪。在这里插入图片描述
  • Android 原生工程配置。可以参见uni-app教程,建议采用方式二:导入工程,里面包都放好了。我这里主要说明一些没提到的细节,和我遇到的问题。
    1、这个HBuilder-Integrate-AS工程,就是在下载好的App离线SDK里面。里面build.gradle已经放好了aaptOptions。 在这里插入图片描述在这里插入图片描述
    2、Androidmanifest.xmlmanifests目录下面,已经放好了meta-data标签。只需要改value。
    在这里插入图片描述
    在这里插入图片描述
  • 申请签名appkey
    1、打开开发者中心,应用管理 > 我的应用 > 点击应用查看应用信息。点击Android云端证书,如果没有生成过点击生成证书。生成过了点击证书详情,记录下MD5/SHA1/SHA256信息。
    在这里插入图片描述
    在这里插入图片描述
    2、点击各平台信息,原来的离线打包Key管理已经迁移过来了。点击新增,新增平台信息。把之前记录的SHA和MD5信息填入,包名是Android studio项目的applicationId
    在这里插入图片描述
    在这里插入图片描述
    3、新增完之后,挪到表格的最后,可以看到表格有一列离线打包Key,如果之前没有生成过,就点击创建,会有一个弹窗,反正点击创建就行。完了之后这里就会变成查看。
    在这里插入图片描述
    点击查看就能看到App Key,这就是离线key。把这个放到项目里面的AndroidManifest.xml里面去。
    在这里插入图片描述
    在这里插入图片描述

发行

Hbuilder选择发行 > 原生App-云打包
这里的云端证书就是之前在Dcloud生成过的。
在这里插入图片描述
中间会有弹窗提示:
打包校验:[Warning] 为落实《网络安全法》《消费者权益保护法》的要求,有效治理App强制授权、过度索权、超范围收集个人信息等现象,保障个人信息安全国内各大应用市场都加强了应用审核,要求应用必须符合相关政策才能上架查看如何解决。不上架国内应用市场无需处理
在这里插入图片描述
这个如果只是为了验证apk效果,可以先继续打包,但是如果要上架国内应用市场,得去提供的(链接)[https://uniapp.dcloud.net.cn/tutorial/app-privacy-android.html#]里将相关的隐私申明等配置好。

打包好了之后会有提示,把apk文件传到手机上运行就能看效果了。
在这里插入图片描述

报错: java.net.SocketTimeoutException: Connect timed out

android studio 代理设置,check connection只要能连上https://dl.google.com就行。

参考:
官方真机运行常见报错

相关文章:

【uni-app】【Android studio】手把手教你运行uniapp项目到Android App

运行到Android App基座 选择运行到Android App基座 选择运行项目 1、连接手机,在手机上选择 传输文件。 2、打开 设置-> 关于本机 -> 版本信息->连续点击4-5次版本号 ,输入手机密码,系统就进入了开发者模式。 3、设置 > 其他设…...

多线程(JavaEE初阶系列6)

目录 前言: 1.什么是线程池 2.标准库中的线程池 3.实现线程池 结束语: 前言: 在上一节中小编带着大家了解了一下Java标准库中的定时器的使用方式并给大家实现了一下,那么这节中小编将分享一下多线程中的线程池。给大家讲解一…...

shell清理redis模糊匹配的多个key

#!/bin/bash# 定义Redis服务器地址和端口 REDIS_HOST"localhost" REDIS_PORT6380# 获取匹配键的数量 function get_matching_keys() {local key_pattern"$1"redis-cli -h $REDIS_HOST -p $REDIS_PORT -n 0 KEYS "$key_pattern" }# 删除匹配的键 …...

【电网异物检测硕士论文摘抄记录】电力巡检图像中基于深度学习的异物检测方法研究

根据国家电力行业发展报告统计,截止到 2018 年,全国电网 35 千伏及以上的输电线路回路长度达到 189 万千米,220 千伏及以上输电线路回路长度达73 万千米。截止到 2015年,根据国家电网公司的统计 330 千伏及以上输电线路故障跳闸总…...

C++共享数据的保护

虽然数据隐藏保护了数据的安全性,但各种形式的数据共享却又不同程度地破坏了数据的安全。因此,对于既需要共享有需要防止改变的数据应该声明为常量。因为常量在程序运行期间不可改变,所以可以有效保护数据。 1.常对象 常对象:它…...

MyBatisPlus学习记录

MyBatisPlus(简称MP)是基于MyBatis框架基础上开发的增强型工具,旨在简化开发、提高效率 MyBatisPlus简介 入门案例 创建新模块,选择Spring初始化,并配置模块相关基础信息选择当前模块需要使用的技术集(仅选择MySQL …...

如何开启一个java微服务工程

安装idea IDEA常用配置和插件(包括导入导出) https://blog.csdn.net/qq_38586496/article/details/109382560安装配置maven 导入source创建项目 修改项目编码utf-8 File->Settings->Editor->File Encodings 修改项目的jdk maven import引入…...

libhv之hio_t分析

上一篇文章解析了fd是怎么与io模型关联。其中最主要的角色扮演者:hio_t 1. hio_t与hloop的关系 fd的值即hio_t所在loop ios变量中所在的index值。 hio_t ios[fd] struct hloop_s { ...// ios: with fd as array.index//io_array保存了和hloop关联的所有hio_t&…...

C语言的转义字符

转义字符也叫转移序列&#xff0c;包含如下&#xff1a; 转移序列 \0oo 和 \xhh 是 ASCII 码的特殊表示。 八进制数示例&#xff1a; 代码&#xff1a; #include<stdio.h> int main(void) {char beep\007;printf("%c\n",beep);return 0; }结果&#xff1a; …...

【腾讯云 Cloud Studio 实战训练营】CloudStudio体验真正的现代化开发方式,双手插兜不知道什么叫对手!

CloudStudio体验真正的现代化开发方式&#xff0c;双手插兜不知道什么叫对手&#xff01; 文章目录 CloudStudio体验真正的现代化开发方式&#xff0c;双手插兜不知道什么叫对手&#xff01;前言出现的背景一、CloudStudio 是什么&#xff1f;二、CloudStudio 的特点三、CloudS…...

Pandas时序数据分析实践—时序数据集

1. 跑步运动为例&#xff0c;对运动进行时序分析 时序数据是指时间序列数据&#xff0c;是按照时间顺序排列的数据集合&#xff0c;每个数据点都与一个特定的时间戳相关联。在跑步活动中&#xff0c;我们可以将每次跑步的数据记录作为一个时序数据样本&#xff0c;每个样本都包…...

use strict 是什么意思?使用它区别是什么?

use strict 是什么意思&#xff1f;使用它区别是什么&#xff1f; use strict 代表开启严格模式&#xff0c;这种模式下使得 JavaScript 在更严格的条件下运行&#xff0c;实行更严格解析和错误处理。 开启“严格模式”的优点&#xff1a; 消除 JavaScript 语法的一些不合理…...

常见OOM异常分析排查

常见OOM异常分析排查 Java内存溢出Java堆溢出原因解决思路总结 Java内存溢出 java堆用于存储对象实例,如果不断地创建对象,并且保证GC Root到对象之间有可达路径,垃圾回收机制就不会清理这些对象,对象数量达到最大堆的容量限制后就会产生内存溢出异常. Java堆溢出原因 无法在…...

kubernetes网络之网络策略-Network Policies

Kubernetes 中&#xff0c;Network Policy&#xff08;网络策略&#xff09;定义了一组 Pod 是否允许相互通信&#xff0c;或者与网络中的其他端点 endpoint 通信。 NetworkPolicy 对象使用标签选择Pod&#xff0c;并定义规则指定选中的Pod可以执行什么样的网络通信&#xff0…...

交换机VLAN技术和实验(eNSP)

目录 一&#xff0c;交换机的演变 1.1&#xff0c;最小网络单元 1.2&#xff0c;中继器&#xff08;物理层&#xff09; 1.3&#xff0c;集线器&#xff08;物理层&#xff09; 1.4&#xff0c;网桥&#xff08;数据链路层&#xff09; 二&#xff0c;交换机的工作行为 2.…...

8.Winform界面打包成DLL提供给其他的项目使用

背景 希望集成一个Winform的框架&#xff0c;提供权限菜单&#xff0c;根据权限出现各个Winform子系统的菜单界面。不希望把所有的界面都放放在同一个解决方案下面。用各个子系统建立不同的解决方案&#xff0c;建立代码仓库&#xff0c;进行管理。 实现方式 将Winform的UI界…...

海量数据存储组件Hbase

hdfs hbase NoSQL数据库 支持海量数据的增删改查 基于Rowkey查询效率特别高 kudu 介于hdfs和hbase之间 hbase依赖hadoopzookeeper&#xff0c;同时整合框架phoenix(擅长读写),hive&#xff08;分析数据&#xff09; k&#xff0c;v 储存结构 稀疏的&#xff08;为空的不存…...

(一)基于Spring Reactor框架响应式异步编程|道法术器

在执行程序时: 通常为了提供性能,处理器和编译器常常会对指令进行重排序。 从排序分为编译器重排序和处理器重排序两种 * (1)编译器重排序: 编译器保证不改变单线程执行结构的前提下,可以调整多线程语句执行顺序&#xff1b; * (2)处理器重排序&#xff1a; 如果不存在数据依赖…...

Vue3 让localstorage变响应式

Hook使用方式&#xff1a; import {useLocalStore} from "../js/hooks"const aauseLocalStore("aa",1) 需求一&#xff1a; 通过window.localStorage.setItem可以更改本地存储是&#xff0c;还可以更新aa的值 window.localStorage.setItem("aa&quo…...

【深度学习】InST,Inversion-Based Style Transfer with Diffusion Models,论文,风格迁移,实战

代码&#xff1a;https://github.com/zyxElsa/InST 论文&#xff1a;https://arxiv.org/abs/2211.13203 文章目录 AbstractIntroductionRelated WorkImage style transferText-to-image synthesisInversion of diffusion models MethodOverview ExperimentsComparison with Sty…...

【CSS】3D卡片效果

效果 index.html <!DOCTYPE html> <html><head><title> Document </title><link type"text/css" rel"styleSheet" href"index.css" /></head><body><div class"card"><img…...

OrderApplication

目录 1 OrderApplication 2 /// 查询订单 2.1.1 //补充商品单位 2.1.2 //补充门店名称 2.1.3 //补充门店名称 2.1.4 //订单售后 2.1.5 //订单项售后 OrderApplication...

如何在保健品行业运用IPD?

保健品是指能调节机体功能&#xff0c;不以治疗为目的&#xff0c;并且对人体不产生任何急性、亚急性或者慢性危害的产品。保健品是食品的一个种类&#xff0c;具有一般食品的共性&#xff0c;其含有一定量的功效成分&#xff0c;能调节人体的机能&#xff0c;具有特定的功效&a…...

Flink系列之:动态发现新增分区

Flink系列之&#xff1a;动态发现新增分区 一、动态发现新增分区二、Flink SQL动态发现新增分区三、Flink API动态发现新增分区 为了在不重新启动 Flink 作业的情况下处理主题扩展或主题创建等场景&#xff0c;可以将 Kafka 源配置为在提供的主题分区订阅模式下定期发现新分区。…...

eclipse版本与jdk版本对应关系

官网&#xff1a;Eclipse/Installation - Eclipsepedia eclipse历史版本&#xff08;2007-&#xff09;&#xff1a;Older Versions Of Eclipse - Eclipsepedia Eclipse Packaging Project (EPP) Releases | Eclipse Packages...

File类的学习

java.io.File类 文件和目录路径的抽象表达形式是一个与操作系统无关的类&#xff0c;任何一个操作系统都可以使用这个类中的方法 File.pathSeparator 文件路径分隔符&#xff0c;windows是分号&#xff0c;linux是&#xff1a; File.separator 文件名分隔符&#xff0c;window…...

Linux 操作系统 Red Hat Enterprise Linux 安装教程

文章目录 笔者的操作环境&#xff1a; 制作环境&#xff1a; Win32 Disk Imager 1.0.0 Windows 10 教育版 ISO&#xff1a; Red Hat Enterprise Linux 9.2 x86_64 Red Hat Enterprise Linux&#xff08;RHEL&#xff09;是一种 Linux 操作系统。安装此操作系统的难题在于&a…...

关于拓扑排序

又重新学了一下拓扑排序&#xff0c;这次发现就十分简单了&#xff0c;拓扑排序的步骤 1.他必须是一个有向无环图&#xff0c;起点我们就是入度为0的点 2.我们首先要输出的就是入度为0的点&#xff0c;然后依次删除这些点连向的点&#xff0c;使这些点的入度-1&#xff0c;如果…...

【C++】开源:Boost库常用组件配置使用

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍Boost库常用组件配置使用。 无专精则不能成&#xff0c;无涉猎则不能通。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一下&#xff0c…...

用python通过http实现文件传输,分为发送端和接收端

要使用Python通过HTTP实现文件传输&#xff0c;可以使用Python的 requests 库来发送和接收HTTP请求。以下是一个示例代码&#xff0c;其中包括发送端和接收端的实现。 发送端&#xff1a; import requestsdef send_file(file_path, url):with open(file_path, rb) as file:re…...