当前位置:   article > 正文

记一次Android全流程开发体验经历以及Android Studio使用【从环境搭建到项目打包发布 + 真实踩坑总结】_the option setting 'android.overridepathcheck=true

the option setting 'android.overridepathcheck=true' is experimental. the cur

前言

临时安排接手一个 Android 应用项目开发,庆幸的是 Android APP 已经开发完成,我只需要在我的电脑上运行起来打包看一下效果即可,但是对于一个从未接触过安卓开发的我来说真的是费尽脑汁,并且这个前期准备真的是太麻烦了,而且会出现各种意想不到的问题。

所以,我利用闲暇时间整理一下本次 Android 开发的体验经历,同时为其他没有接触过 Android 开发的小伙伴提供一下开发思路。

如果懂行的小伙伴看出了什么门道,欢迎留言讨论,为其他小伙伴提供更多解决问题的思路。


一、开发环境快速搭建

1. 下载 JDK

官网下载地址:JDK - 传送门

选择下载相应版本的 JDK,同意协议后下载即可。
在这里插入图片描述
如果在这一步下载有问题的话,可以去看一下具体的下载方式,网上对于 JDK 下载的教程有很多,我在这里就不过多赘述了。

2. 下载 Android SDK

由于某些限制,很难打开并且下载官网上的 SDK,所以这里为大家推荐国内的 Android 工具的下载网站:AndroidDevTools - 传送门

可以在顶部菜单栏选择 “Android SDK 工具” => “SDK Tools”,会自动跳转至该下载模块;也可以直接下滑至 “SDK Tools” 模块。

在这里插入图片描述
选择适合自己的版本进行下载即可。
在这里插入图片描述
将下载后的安装包解压到相应的目录下。


二、Android Studio

1. 下载

Android Studio 的下载也可以在刚才推荐的国内的 Android 工具的下载网站上下载:AndroidDevTools - 传送门

第一个就是,选择版本直接下载即可。

2. 安装

这里推荐大家看一下 Android Studio 开发环境快速搭建
这篇文章里的 4.安装Android Studio,还是比较详细的,在这里我就不过多赘述了。


三、创建并启动一个安卓模拟器

至此,你应该将你的 JDK、SDK 和 Android Studio 等都搭建完成。

我们在安装了一个 Android SDK 后,就可以创建一个对应版本的模拟器啦。

  1. 启动 Android Studio ,点击下面按钮,进入创建模拟器管理页面
    在这里插入图片描述

  2. 点击 + Create Virtual Device 创建模拟器
    在这里插入图片描述

  3. 在弹出的页面中,Categroy 类型选择 “Phone”,并选择一款手机型号,单机 Next 按钮(Play Store 列没有三角形的,就无需下载其他组件)
    在这里插入图片描述

  4. 下载对应的镜像,点击 Next 继续
    在这里插入图片描述

  5. 在新页面中设置 Android 模拟器

    AVD Name:模拟器名字
    Nexus 5X:手机型号,屏幕尺寸为5.2英寸,分辨率为1080*1920(单位:像素),420dpi
    R:对应的Android版本11.0 x86
    Startup orientation:模拟器横屏或者竖屏显示
    Graphics:选择模拟器中的渲染图形
    Device Frame:是否显示手机外形,可以不勾选。

    设置完成,单击 Finish 按钮,即完成 Android 模拟器的创建。
    在这里插入图片描述

  6. 在 Android 模拟器管理列表中,选择创建的 Android 模拟器,在 Actions 一列中单机三角形启动按钮,启动模拟器
    在这里插入图片描述

  7. 启动成功,如图:
    在这里插入图片描述


四、运行项目

上面我们已经把环境和模拟器都创建好了,下面我们开始创建并运行一个项目。

  1. 可以在一开始创建一个 Android 应用,或者在内部选择 “File” => “New” => “New Project”,创建一个项目。
    在这里插入图片描述
    在这里插入图片描述

  2. 选择一个 Activity,默认选择空的 Activity 即可。
    在这里插入图片描述

  3. 配置 Activity,用默认的就好,不需要修改
    在这里插入图片描述

  4. 第一次创建项目可能会这样,Finish 即可
    在这里插入图片描述

  5. 首次进入项目主界面,等待加载完毕
    在这里插入图片描述

  6. 首次使用需要安装相关的构建工具,我们同意相关协议,然后下一步,等待下载完成后,关闭即可
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  7. 等待所有安装完成,点击右上角绿色的运行按钮,会弹出对应的 Android模拟器设备的窗口
    在这里插入图片描述

  8. 安卓模拟器会显示你开发的页面
    在这里插入图片描述


五、真机调试

真机调试分为两部分,一是手机端设置,二是 Android Studio 的设置

手机端设置

  1. 打开手机的开发者选项,由于各个手机厂商的打开方式都不同,下面列出一些常用手机:

    小米手机:连续点击三下 “MIUI 版本”
    华为手机:连续点击 “版本号” 多次,直到屏幕提示已进入开发者模式。
    三星手机:连续快速点击多次 “软件信息” 按钮,直到屏幕提示已进入开发者模式。
    OPPO、VIVO、魅族、锤子等手机品牌:连续点击 “版本号” 或 “软件版本号” 多次

  2. 进入开发者选项,打开USB调试,选择 USB 的连接方式(近充电、传输文件、传输照片等,不要选择充电模式,确保电脑和手机可以进行传输)

  3. 插入USB数据线连接,成功连接后,Android Studio 会显示出该手机设备

Android Studio 的设置

此时切换到Android Studio上,即可看到自己的手机设备,点击运行,在手机上安装APP,即可运行
在这里插入图片描述
注意:此部分对于部分人的设备可能连接手机之后还需要对 Android Studio 进行设置,但是我这个没有设置就可以直接用了,所以仅供参考,要找到适合自己的方法最重要。


六、项目打包(APK)

我们项目完成,也调试好了,那么就要将项目打包成 APK 安装包在手机上安装。

APK 版本

APK 分为 Debug 和 Release 版本。我们在模拟器上运行时,会生成 Debug版本的安装包,但是它是运行生成的,不是打包生成的,所以是不能够直接安装到我们手机上的。

如何查看Debug版本的 APK

把当前项目切换成 Project 模式,然后找到 app/build 文件夹。只要你的项目运行了,就会生成这个文件夹,然后就可以看到当前的 apk
在这里插入图片描述
此时如果将这个 apk 在手机上试着安装一下,就会提示安装失败。
在这里插入图片描述
这是因为:只有 release 版本的 APK 才能安装在手机上。

生成 release 版本的 APK(手机可正常安装版本)

  1. 点击导航栏的 Build → Generate Signed Bundle / APK…
    在这里插入图片描述

  2. Android Studio 版本在3.3以上的会出现下图所示,选择 APK,点击 Next。较低版本的会直接进入第三步。
    在这里插入图片描述

  3. 第一次打包需要创建 key 文件,点击 Create new
    在这里插入图片描述

  4. 点击 path 右侧文件夹图标
    在这里插入图片描述

  5. 这里创建一个文件夹(名称自定义),File name 填写自己定义的 jks 文件名,比如abc(这里第一次创建的时候可能会懵圈,jks 文件是哪里来的,这里明确一下,jks 文件就是我们自定义要生成的),点击 ok
    在这里插入图片描述

  6. 最上边的 Password 是 jks 的密码,Confirm 是确认密码;Key 字段下边的 Alias 是用户名,Password 是 key 密码,Certificate 中至少需要填写一项,然后点击 OK
    在这里插入图片描述

  7. 此时点击 Next 下一步
    在这里插入图片描述

  8. Build Variants 中选择打 debug 包还是 release 包,我们这里选择 release 版本包,然后选择签名版本,然后 Finish
    在这里插入图片描述

    补充:

    1. 这里说一下签名版本 Signature Vsersions 中的 V1 和 V2 的区别?

      V1签名是对 jar 进行签名,V2签名是对整个 apk 签名。
      官方介绍就是:V2签名是在整个APK文件的二进制内容上计算和验证的,V1是在归档文件中解压缩文件内容。

    2. 二者签名所产生的结果?

      V1签名:在V1中只对未压缩的文件内容进行了验证,所以在APK签名之后可以进行很多修改——文件可以移动,甚至可以重新压缩。即可以对签名后的文件在进行处理。

      V2签名:V2签名验证了归档中的所有字节,而不是单独的zip条目,如果您在构建过程中有任何定制任务,包括篡改或处理APK文件,请确保禁用它们,否则您可能会使V2签名失效,从而使您的APKs与Android 7.0和以上版本不兼容。

    3. 结论?

      一定可行的方案: 只使用 V1签名 方案
      不一定可行的方案:同时使用 V1签名 和 V2签名 方案
      对 7.0 以下一定不行的方案:只使用 V2签名 方案

      或者

      1,如果要支持 Android 7.0 以下版本,那么尽量同时选择两种签名方式,但是一旦遇到签名问题,可以只使用 V1 签名方案
      2,如果需要对签名后的信息做处理修改,那就使用 V1签名 方案
      3,如果最后遇到各种不同的问题,可以不勾选 V1 和 V2,直接打包签名

  9. 我们刚才打的是 release 包,进入 app/release 文件夹,可以看到,apk包已经生成。
    在这里插入图片描述

  10. 我们将生成的 apk 文件通过 QQ 发送到手机上,就可以直接下载安装了。

  11. 下次签名时,我们直接选择之前创建的 jks 文件(一般系统会默认选择),输入 key用户名,密码,即可打包。


七、clean项目

有时候我们把代码改动了,出现一些莫名其妙的错误,Android Studio的自动编译没有成功,导致运行结果不正常,这时候我们就需要对项目进行清理,也就是 clean project。

  1. 在 Android Studio 左侧的项目目录面板上,把 “android” 改成 “project” 的形式展示
    在这里插入图片描述

  2. 在 clean project 之前,在 “app” —— “build” —— “outputs” 里,有存放临时编译成的 apk
    在这里插入图片描述
    这些 apk 有可能就是导致我们项目出现异常错误的罪魁祸首

  3. 找到菜单栏里的 “build”,如图,选择 “clean project”,就可以清除之前编译的临时项目
    在这里插入图片描述

  4. 带 clear 完成之后,再次查看 “app” —— “build” —— “outputs” 目录,会发现原来的 “apk” 被清除掉了。
    在这里插入图片描述

  5. 此时再重新编译项目,部分异常错误就消失了。


踩坑总结

上面已经介绍了一整套完整的开发流程,下面我将总结一下在我的项目开发过程中碰到的各种坑,希望大家能够避免踩到类似的坑。

1. AndroidStudio [WARNING] —— android.disableResourceValidation=true

问题:

  • The option setting ‘android.disableResourceValidation=true’ is experimental and unsupported.

分析:

  • 存在不支持的 resource 文件或文件格式有问题。

解决方案:

  1. 在项目的 gradle.properties 文件中添加 android.disableResourceValidation=true 忽略该问题。
  2. 在 File -> settings -> Editor -> File Encodings 编码格式统一修改为 UTF-8。

2. the ADB binary found at ... is obsolete and has seroiusperformance problems with the Android Emulato

问题:

  • the ADB binary found at … is obsolete and has seroiusperformance problems with the Android Emulator. Please update to a newer version to get significantly faster app/file transfer
    在这里插入图片描述

分析:

  • 错误大意:ADB二进制文件位于……已过时,并且具有与Android模拟器的性能问题。请更新到较新版本,以获得显著更快的应用/文件传输
  • 意思就是有文件需要升级

解决方案:

  1. 打开 SDK manageer
    在这里插入图片描述

  2. 选择 SDK tools,会看到类似于以下内容
    在这里插入图片描述
    在最后一列的 Staus 显示 Update Available xxx 字样,
    在这里插入图片描述

  3. 有以上内容说明有新的更新,然后选中该更新内容进行更新即可。

3. Android Studio [Build] —— Caused by: org.gradle.api.internal.plugins.PluginApplicationException: Failed to apply plugin [id ‘com.android.internal.application’]

问题:

  • Android Studio运行项目出现Caused by: org.gradle.api.internal.plugins.PluginApplicationException: Failed to apply plugin [id ‘com.android.internal.application’]
    在这里插入图片描述
    Caused by: org.gradle.api.tasks.StopExecutionException: Your project path contains non-ASCII characters. This will most likely cause the build to fail on Windows. Please move your project to a different directory. See http://b.android.com/95744 for details. This warning can be disabled by adding the line ‘android.overridePathCheck=true’ to gradle.properties file in the project directory.

解决方案:

  1. Gradle.Scripts 中的 gradle.properties 添加 android.overridePathCheck=true 即可解决。
  2. 添加完成后在点击右上角的刷新就可以了
    在这里插入图片描述
    注意:所有更新都需要刷新一下代码。

4. AndroidStudio [异常] —— Unsupported Modules Detected: Compilation is not supported for following modules

问题:

  • Unsupported Modules Detected: Compilation is not supported for following modules: MTServer.MTServer, MTServer.MTServer.test, MTServer.MTServer.main. Unfortunately you can’t have non-Gradle Java modules and Android-Gradle modules in one project.

分析:

  • 内容修改之后没有进行同步刷新。

解决方案:

  1. 点击 Sycn Project With Gradle Files 按钮同步一下即可(如果工具栏中找不到 , 在 菜单栏 -> View -> 选中 Toolbar , 即可在菜单栏中找到 上面的 Sync 按钮 )
    在这里插入图片描述

  2. File -> Settings(Shift + Alt + S) -> Plugins -> Installed -> 取消“Android Support”

5. AndroidStudio [异常] —— AndroidStudio SSL peer shut down incorrectly

问题:

  • AndroidStudio 编译时出现如下问题 SSL peer shut down incorrectly 或者某些jar包下载不下来,一般是因为墙的原因导致的。

分析:

  • 这时候我们就需要配置镜像来解决这个问题。(为了提高jar包的下载速度也可以配置)

解决方案:

  1. 配置的方法就是在根 build.gradle 中添加镜像仓库,一般我们选择阿里的 http://maven.aliyun.com/nexus/content/groups/public/

    buildscript {
    
        repositories {
            maven { url 'https://jitpack.io' }
            maven { url 'https://maven.aliyun.com/repository/public' }
            maven { url 'https://maven.aliyun.com/repository/central' }
            maven { url 'https://maven.aliyun.com/repository/google' }
            maven { url 'https://maven.aliyun.com/repository/public' }
            maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
            google()
            jcenter()
        }
        dependencies {
           .....
        }
    }
    
    allprojects {
        repositories {
            maven { url 'https://jitpack.io' }
            maven { url 'https://maven.aliyun.com/repository/public' }
            maven { url 'https://maven.aliyun.com/repository/central' }
            maven { url 'https://maven.aliyun.com/repository/google' }
            maven { url 'https://maven.aliyun.com/repository/public' }
            maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
            google()
            jcenter()
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
  2. 这里需要注意要将 jcenter() 放到最后一个,因为他就是那个下载慢,或者报错的罪魁祸首

6. 碰到莫名其妙的错误时,记得 clean project 或者 Sycn Project With Gradle Files 同步刷新项目。


以上就是我在体验开发 Android 应用时碰到的问题已经总结的方法,由于我也没有深入接触 Android 开发,所以部分开发问题我也不能解决。

大家可以在项目开发过程中多多总结。

希望上面的内容可以帮助到大家。有任何问题欢迎讨论留言,最后不要忘记一键三连哦~。

各位 加油!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/99558
推荐阅读
相关标签
  

闽ICP备14008679号