安卓应用开发环境

news2025/2/24 5:48:06

安卓应用开发环境

  • 安卓应用开发环境
    • 安卓Studio下载安装
    • 安卓Gradle下载安装
  • 安装&构建问题
    • Android Studio无法下载SDK
    • SSH变体'simple'不支持设置端口
    • cvc-complex-type.2.4.a
    • Failed to find Build Tools revison 30.0.2
    • Android Studio无法找到CMake
    • CMake was unable to find a build program corresponding to "Ninja"
    • 构建时insecure protocols
    • mips64el-linux-android
    • Gradle和Gradle Plugin版本对照表
  • 常用命令
    • ADB命令

本文会持续更新修改最新步骤,欢迎各位私信指正~~

安卓应用开发环境

安卓Studio下载安装

安卓官网:https://developer.android.google.cn/studio
国内推荐:https://www.androiddevtools.cn/

安卓Gradle下载安装

在这里插入图片描述

  • 默认配置
    配置文件:根/gradle/wrapper/gradle-wrapper.properties
    distributionBase:下载的Gradle压缩包解压后存储的主目录GRADLE_USER_HOME默认指向C:\Users…gradle
    distributionPath:相对于distributionBase的解压缩后的Gradle压缩包的路径
    zipStoreBase:同distributionBase,只不过是存放zip压缩包的
    zipStorePath:同distributionPath,只不过是存放zip压缩包的
    distributionUrl:设置下载的Gradle压缩包的服务器路径,以及决定了这个项目使用的gradle版本
    从distributionUrl地址下载的Gradle会保存在1处指定的目录中。
  • 手动配置:
    1.在官网下载Gradle压缩包。Gradle官网:https://gradle.org/releases/
    2.在Android studio中将默认配置修改为自定义配置。File>Settings…>搜索Gradle。
    2.1 1处为全局设置Gradle存放路径。将解压后的Gradle包路径粘贴到1处。
    2.2 2处为当前项目使用的Gradle存放路径。将2处修改为Specified location:<找到下载的Gradle路径>,一般此处路径和1处保持一致即可。当然这2处的路径也可以使用默认配置’gradle-wrapper.properties’ file。
    如果从外网向内网迁移配置项目,需要将该目录下的所有文件全部迁移到内网环境中,因为此目录(2处路径)中包含所有同步sync下来的依赖包。

安装&构建问题

Android Studio无法下载SDK

  • 方案一:
  1. 使用在线ping工具,ping dl.google.com
    在线工具非常多,随便找一个https://ping.chinaz.com/,输入dl.google.com
    在这里插入图片描述
  2. 选择响应快的ip地址
    在这里插入图片描述
  3. 将选中的ip加入hosts文件末尾
120.253.255.97 dl.google.com    # 写入hosts文件末尾
系统host文件路径
windowsC:\Windows\System32\drives\etc\hosts
linux/etc/hosts
  • 方案二
    通过配置国内代理访问国外仓库地址:https://services.gradle.org/distributions/gradle-x.x.x-all.zip
    打开File>Setting>Appearance & Behavior>System Settings>HTTP Proxy
    选择Auto-detect proxy configuration URL:,然后输入国内代理服务地址之一(参考下面的开源镜像站),点击Check connection,检查需要代理的目标地址是否能够链接成功。

    搜集到的一些开源镜像站:
    1、东软信息学院:mirrors.neusoft.edu.cn port:80
    2、北京化工大学:ubuntu.buct.edu.cn/ubuntu.buct.cn port:80
    3、中国科学院开源协会:mirrors.opencas.cn (mirrors.opencas.org/mirrors.opencas.ac.cn) port:80
    4、上海GDG镜像服务器:sdk.gdgshanghai.com port:8000
    5、电子科技大学:mirrors.dormforce.net port:80
名称地址
中国科学技术大学http://mirrors.ustc.edu.cn/
阿里https://mirrors.aliyun.com/android.googlesource.com/
腾讯https://mirrors.cloud.tencent.com/AndroidSDK/
清华大学https://mirrors.tuna.tsinghua.edu.cn/
搜狐http://mirrors.sohu.com/
网易http://mirrors.163.com/
北京交通大学http://mirror.bjtu.edu.cn
兰州大学http://mirror.lzu.edu.cn/
上海交通大学http://ftp.sjtu.edu.cn/
东北大学http://mirror.neu.edu.cn/
东软信息学院http://mirrors.neusoft.edu.cn/
重庆大学http://mirrors.cqu.edu.cn/

SSH变体’simple’不支持设置端口

ssh variant ‘simple’ does not support setting port
在ubuntu上git工具升级到2.42.0后出现报错不能拉代码。原因是git 2.16.x 以上的版本上 ssh variant 需要手动设置为 ssh。解决方法:

git config --global ssh.variant ssh

cvc-complex-type.2.4.a

老项目用较新的IDE打开后,出现cvc-complex-type.2.4.a:发现了以元素’base-extension’开头的无效内容。应以’layoutlib’之一开头。
打开File>Project Structure>Project修改配置,参考下面的Gradle和Gradle Plugin版本对照表。

Gradle Version:5.4.1 +
Android Plugin Version:3.5.2 +

Failed to find Build Tools revison 30.0.2

原因:SDK中缺少必需的基本的核心的开发工具包30.0.2
工具包路径:在1处指定的路径下AndroidSdk目录中的\build-tools下,有各个API平台的对应的工具包。
解决办法:重新安装工具包
具体操作:在Android SDK的SDK Tools中,勾选Show Package Details展开显示所有子选项,先取消勾选有问题的工具包,点击Apply按钮后开始卸载有问题工具包;等Finish后在勾选这个工具包,点击Apply开始安装此包。
Android SDK Tools是一种开发工具集,主要用于Android平台上的应用程序开发。它提供了许多有用的工具,包括模拟器调试器编译器打包工具等等,但这些不是固定的,它们会随着谷歌的修改变化位置,比如说模拟器已经从工具包中迁移到外面,adb迁移到platform-tools目录中。
在这里插入图片描述

Android Studio无法找到CMake

Errror: Unable to find CMake with version:3.10.2 within folder:[…
解决办法:重新安装CMake工具包或者手动下载安装。
CMake官网下载地址:https://cmake.org/download/
有两种选择:源码版本和二进制版本,这里根据项目选择下载历史版本3.10.2(下载地址:https://cmake.org/files/)

CMake was unable to find a build program corresponding to “Ninja”

使用cmake工具且选用Ninja作为编译工具编译时报错,找不到Ninja的程序
Ninja官网:https://ninja-build.org/
官网出问题或者无法下载时,可以使用源码编译后安装。

构建时insecure protocols

项目构建时报错:Using insecure protocols with repositories, without explicit opt-in, is unsupported. Switch Maven repository ‘maven(XXX)’ to redirect to a secure protocol (like HTTPS) or allow insecure protocols.
原因:不兼容https请求协议,无法链接到服务器。

maven {
            allowInsecureProtocol true //添加这一行时注意格式或者将url中的http修改为https
            url 'http://xxx'
}

mips64el-linux-android

No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android
下载ndk后找到缺失的添加:【新版本】https://developer.android.google.cn/ndk/downloads/
【旧版本】https://developer.android.google.cn/ndk/downloads/older_releases
https://github.com/android/ndk/wiki/Unsupported-Downloads
这里需要逐个下载找很麻烦,如果条件允许,推荐删除NDK后重新下载比较方便。

Gradle和Gradle Plugin版本对照表

官网Android Gradle 插件版本说明:
https://developer.android.google.cn/studio/releases/gradle-plugin?hl=zh-cn

插件版本所需的最低 Gradle 版本
8.18.0
8.08.0
7.47.5
7.37.4
7.27.3.3
7.17.2
7.07.0
4.2.0+6.7.1
3.5.05.4.1+
3.4.0 - 3.4.15.1.1+
3.3.0 - 3.3.24.10.1+
3.2.0 - 3.2.14.6+
3.0.0+4.1+
2.3.0+3.3+
2.1.3 - 2.2.32.14.1+
2.0.0 - 2.1.22.10 - 2.13
2.0.0 - 2.1.22.10 - 2.13
1.5.02.2.1 - 2.13
1.2.0 - 1.3.12.2.1 - 2.9
1.0.0 - 1.1.32.2.1 - 2.3

常用命令

ADB命令

> adb shell getprop ro.hw.country ——查询hw手机发货地址
> adb shell getprop ro.build.version.emui  ——查询hw手机EMUI版本
> adb shell getprop ro.product.cpu.abi   ——查询芯片是32位还是64> adb shell getprop ro.product.manufacturer   ——查询设备制造商
> adb shell getprop ro.product.brand  ——查询手机品牌
> adb shell getprop ro.product.model  ——查询手机内部代号
> adb shell getprop ro.product.name  ——查询设备名称
> adb shell getprop ro.serialno  ——查询设备序列号
> adb shell getprop ro.build.version.release ——查询手机Android系统版本

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1165397.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

lang_process() (一)

一、lang_process() 从现在开始介绍 lang_process()函数&#xff0c;是GNU ld&#xff08;GNU链接器&#xff09;的一个核心函数&#xff0c;负责执行链接过程中的各个关键操作。lang_process(void) 函数涵盖了整个链接过程中的各个关键步骤&#xff0c;包括符号解析、重定位、…

Spring Boot Actuator 漏洞利用

文章目录 前言敏感信息泄露env 泄露配置信息trace 泄露用户请求信息mappings 泄露路由信息heapdump泄露堆栈信息 前言 spring对应两个版本&#xff0c;分别是Spring Boot 2.x和Spring Boot 1.x&#xff0c;因此后面漏洞利用的payload也会有所不同 敏感信息泄露 env 泄露配置信…

【使用Python编写游戏辅助工具】第二篇:键盘监听的应用

前言 这里是【使用Python编写游戏辅助工具】的第二篇&#xff1a;键盘监听的应用。本文主要介绍使用Python实现事件监听功能。 键盘监听是指通过编程的方式监控用户在键盘上的按键操作。 在这里键盘监听的主要用途是&#xff1a; 监听我们按下的按键&#xff0c;如果按下了指…

@Tag和@Operation标签失效问题。SpringDoc 2.2.0(OpenApi 3)和Spring Boot 3.1.1集成

问题 Tag和Operation标签失效 但是Schema标签有效 pom依赖 <!-- 接口文档--><!--引入openapi支持--><dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-starter-webmvc-ui</artifactId><vers…

最长回文子串-LeetCode5 动态规划

由于基础还不是很牢固 一时间只能想到暴力的解法: 取遍每个子串 总数量nn-1n-2…1 O(n^2) 判断每个子串是否属于回文串 O(n) 故总时间复杂度为O(n^3) class Solution { public:string longestPalindrome(string s) { int max0;string ret;for(int i0;i<s.size();i)for(int…

基于SSM+Vue的宠物用品电子商务平台设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…

金山文档轻维表之删除所有行记录

目前脚本文档里面的只有删除行记录功能&#xff0c;但是需要指定ID值&#xff0c;不能实现批量删除&#xff0c;很多人反馈但是官方无回应&#xff0c;挺奇怪的 但是批量删除的需求我很需要&#xff0c;最后研究了一下&#xff0c;还是挺容易实现的 测试&#xff1a; 附上脚本…

年终总结一定用得上!这8款AI制作PPT软件不容错过。

PPT&#xff08;PowerPoint&#xff09;已成为日常商务办公、教育和营销环境中广泛使用的一种呈现工具。年终总结时&#xff0c;使用PPT能清晰、直观地展示一年的工作成果&#xff0c;从而让团队成员或上级领导更好地了解并评估工作表现。 在过去&#xff0c;创建精美和引人入…

[PHP]帮管客CRM客户管理系统 v5.1.0

帮管客CRM客户管理系统基于先进的CRM营销理念设计&#xff0c;集客户档案、销售记录、业务往来于一身&#xff0c;以凝聚客户关系、提升资源价值为核心&#xff0c;将潜在客户变为现实客户、从而提升销售量、提高用户的满意度&#xff0c;并增加企业竞争力。帮管客CRM是适用于中…

Redis4 渐进式遍历/自定义客户端/持久化

1.渐进式遍历 1.keys *一次性把所有的key都获取到.但是存在一个问题,一旦数据过多,redis就会被阻塞住,就无暇顾及其他的命令,这样的影响很大. 2.那么就出现了渐进式遍历,可以做到既能获取所有的key,又不会阻塞服务器.渐进式不是一个命令把所有的key获取到,而是没执行一次命令只…

MySQL的3种索引合并优化⭐️or到底能不能用索引?

MySQL的3种索引合并优化⭐️or到底能不能用索引? 前言 前文我们讨论过MySQL优化回表的多种方式&#xff1a;索引条件下推ICP、多范围读取MRR、覆盖索引等 这篇文章我们来聊聊MySQL提供的另一种优化回表的手段&#xff1a;index merge 索引合并 在阅读本文前&#xff0c;你…

windows + Mingw32-make 编译 PoDoFo库,openssl, libjpeg, Msys2工具的使用

参考&#xff1a; https://blog.csdn.net/sspdfn/article/details/104244306 https://blog.csdn.net/yaoyuanyylyy/article/details/17436303 https://blog.csdn.net/wxlfreewind/article/details/106492253 前期进行了各种摸索&#xff0c;由于Podofo依赖库比较多&#xff0c…

Android系统Launcher启动流程学习(一)init启动部分

init进程学习&#xff1a; 文件路径system/core/init/init.cpp 解析init.rc配置文件&#xff0c;首先开启ServiceManager和MediaServer等关键进程init进程fork启动Zygote服务进程处理子进程的终止(signal方式)提供属性服务的功能 int main(int argc, char** argv) {//注释一…

Problem I. Magic Potion--2018ICPC南京

解析&#xff1a; 对于英雄跑一边二分图匹配&#xff0c;记录res1 再跑一边二分图匹配&#xff0c;记录res2 答案即为res1min&#xff08;k&#xff0c;res2&#xff09; #include<bits/stdc.h> using namespace std; int n,m,k; int g[510][510],match[510],st[510]; b…

【Python全栈_公开课学习记录】

一、初识python (一).Python起源 Python创始人为吉多范罗苏姆&#xff08;荷兰&#xff09;&#xff0c;Python崇尚优美、清晰、简明的编辑风格。Python语言结构清晰简单、数据库丰富、运行成熟稳定&#xff0c;科学计算统计分析领先。目前广泛应用于云计算、Web开发、科学运算…

BlockingQueue解析

BlockingQueue其实就是阻塞队列&#xff0c;是基于阻塞机制实现的线程安全的队列。 BlockingQueue不同于普通的Queue的区别主要是&#xff1a; 通过在入队和出队时进行加锁&#xff0c;保证了队列线程安全支持阻塞的入队和出队方法&#xff1a;当队列满时&#xff0c;会阻塞入…

数据结构与算法【01】—绪论

专栏地址:数据结构与算法专栏 开源仓库:bigsai-algorithm仓库 ,欢迎支持 针对以前写的数据结构与算法系列重写(针对文字描述、图片、错误修复),改动会比较大,一直到更新完为止 前言 数据结构与算法是程序员内功体现的重要标准之一,且数据结构也应用在各个方面,业界更有…

3.18每日一题(奇偶性、奇偶性的平移、几何意义、配方、换元)

解法一&#xff1a;先配方&#xff0c;再用三角函数换元&#xff08;看见根号一般用三角函数&#xff09;&#xff0c;看见对称区间联想奇偶性&#xff0c;最后再用公式 解法二&#xff1a; 利用奇偶性的平移&#xff0c;令&#xff08;x-1&#xff09; t &#xff0c;对应的区…

ROS学习笔记(4):ROS架构和通讯机制

前提 前4篇文章以及帮助大家快速入门ROS了&#xff0c;而从第5篇开始我们会更加注重知识积累。同时我强烈建议配合B站大学的视频一起服用。 1.ROS架构三层次&#xff1a; 1.基于Linux系统的OS层&#xff1b; 2.实现ROS核心通信机制以及众多机器人开发库的中间层&#xff1b…

[H5动画制作系列]坐标转化问题一次搞清,一了百了

前言: 本次演示的坐标包括三个坐标层&#xff1a; 1.舞台上的某位置相对于舞台的全局坐标的坐标(黑色)。 2.舞台上蓝色实例内部某位置相对于该蓝色实例内部局部坐标的坐标(蓝色)。 3.舞台上蓝色实例内部的红色实例内部某位置相对该红色实例内部局部坐标的坐标(红色)。 舞台…