Android studio安装
Posted 无敌三角猫
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android studio安装相关的知识,希望对你有一定的参考价值。
背景:主要为了解决魔方机器人代码运行问题。
- 注意点1:虚拟机和安装环境的版本要一致。
- 注意点2:在安装android Studio之前,需要先安装jdk,如果C盘足够大,可以直接安装在c盘,如果系统正常(系统是原版的,英文的系统用户名、或是被处理较少的情况、网络安全配置较低等),环境变量是不需要设置的,直接安装完成按AS默认的配置已经设置好了。
- 夜神模拟器的速度更快,其模拟的是真机的操作。
-
JAVA JDK的安装。
我选择的是下面红框中的版本。
真机运行,你用usb接入电脑,打开手机usb调试模式,你就可以在右上角看到你的手机。
可以看到主机的API的版本号,能够正常连接,但是无法在自己的手机上正常运行,可能是API版本问题。
现在的问题是可以用AS自带的模拟器运行"Hello world!"示例程序,不知道RubikCubeRobot程序如何进行测试,也就是不知道对于别人的程序如何快速跑起来,应该从如何打开已有文件,并导入相应配置找突破口。
2.如何打开并运行别人的Android程序。
- 关于开源程序版本问题,第一种方式是安装与开源项目相同的版本,第二种方式是修改为与本地是一致的版本。
- 这是实现主要功能的函数。
- 通过新建AS项目,根据新建项目的一些信息去修改开源项目的信息,使其与本地一致。
- 按照这个方式可以发现错误
Task 'installDebug' not found in root project 'RubikCubeRobot-master'.
Unable to determine application id: com.android.tools.idea.run.ApkProvisionException: No outputs for
-
切换了一个项目,进行配置文件的修改,问题依旧。
- 存在问题,网上下载下来的程序跑不起来。
(1)修改配置文件的过程中,发现根目录下的gradle文件里面的内容classpath没有,是不是android studio版本太新的原因。
这是安装的系统版本,打算降低android studio版本到3.5.3,因为新版本的创建的目录结构和3.53版本不一致,和github程序的代码也不一致。
参考博客: Android studio安装(免配置环境)【版本:3.5.3】
- 通过这篇博客了解到,“不需要配置jdk,jre环境、官方已经集成了。”,解释的通之前为什么没有安装jdk也能正常运行"Hello world!"示例程序。
- 官网上只有下载最新版的android Studio链接,没有3.5.3的下载链接,需要自己寻找并安装。
参考:Android Studio下载及安装3.5版本(网盘链接密码错误,安装过程可参考)。找到下载地址,卸载之前的版本,并安装3.5版本。安装完后,创建empty activity, Gradle sync同步太慢,解决方案参考:gradle sync太慢的问题。原因是国内访问jcenter太慢,甚至连接不上,就会报各种关于依赖更新失败的错误。修改完后,进行同步:
buildscript
repositories
maven url 'http://maven.aliyun.com/nexus/content/groups/public/'
google()
jcenter()
dependencies
classpath 'com.android.tools.build:gradle:4.0.1'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
allprojects
repositories
maven url 'http://maven.aliyun.com/nexus/content/groups/public/'
google()
jcenter()
很快就同步成功了,显示如下:
更新完之后的变化就是,就是app出现了,可以“run”了。
添加模拟器设备,自动识别和sdk一致的api。
点击模拟器后“run”按钮,可以正常运行。
接下来就还回到原来问题,利用新安装的android studio 3.5.3版本跑魔方机器人程序。
(1)解压程序,参考:如何成功运行和导入别人的android studio项目?把文件夹中不必要的文件删掉。
(2)更新根目录下的build.gradle文件内容。
(3)更新app文件夹下的build.gradle文件里的sdk版本。
(4)打开gradle\\wrapper\\gradle-wrapper.properties复制最后一句,去到要导入的项目进行替换。(一致不需要修改)
(5)”import“ 项目
import后选择第一个,然后下一步,下一步。但是文件目录结构和“Hello world”目录结构不一致。
目录结构如下所示:
虽然,自动变为可用的状态,还是不能正常运行。
(6)下载另一个rubik项目程序,因为这个结构更加简单,没有OpenCV程序。
同步的时候,报上面的错误,但是“Hello world”也是这样的设置,是可以正常运行的。不清楚什么原因。
错误信息:
ERROR: Could not find com.android.tools.build:gradle:3.5.3.
Searched in the following locations:
- http://maven.aliyun.com/nexus/content/groups/public/com/android/tools/build/gradle/3.5.3/gradle-3.5.3.pom
- http://maven.aliyun.com/nexus/content/groups/public/com/android/tools/build/gradle/3.5.3/gradle-3.5.3.jar
- https://jcenter.bintray.com/com/android/tools/build/gradle/3.5.3/gradle-3.5.3.pom
- https://jcenter.bintray.com/com/android/tools/build/gradle/3.5.3/gradle-3.5.3.jar
Required by:
project :
Add Google Maven repository and sync project
Open File
解决方案:解决 Could not find com.android.tools.build:gradle 问题。
- gradle的版本和gradle插件的版本(classpath),不是一回事。这里有插件和gradle版本的对应关系。
- Setting可以查看插件和gradle的版本信息。如下图所示
这里也可以查看和设置SDK的版本。
上一个解决方案,没有解决,根据错误信息在CSDN中搜:
解决方案2:ERROR: Could not find com.android.tools.build:gradle:3.5.3.
解决方法:在repositories内添加google()
可以正常同步,并且module:app处于激活状态。
(7)run程序出现下面的错误:
错误: 程序包org.twinone.rubiksolver.robot不存在
将robot文件夹放置到与util文件夹同级,可以找到了。
点击run,有警告,可以出来,不能正常运行。
Configuration 'compile' is obsolete and has been replaced with 'implementation' and 'api'.
错误信息如上图所示,搜了一下解决方案,Configuration 'compile' is obsolete and has been replaced with 'implementation。
可以消除第一个warning,但是后面的warning不能消除。
Mapping new ns http://schemas.android.com/repository/android/common/02 to old ns http://schemas.android.com/repository/android/common/01
参考:Android编译出现Warning: Mapping new ns to old ns的解决方案
- 是因为gradle版本太旧的问题。
自己的android studio并没有对应的更新工具。
那我们按照前面gradle版本及插件进行更新设置呢?
按照上表提升gradle及插件版本,发现不能无限制的提升,因为gradle5.6.4及以上需要安装android studio3.6。
通过上图可以看到android studio的SDK版本和gradle版本是有对应关系的。
- 是因为配置里面有些api的版本太老了。
修改配置文件,并下载相应的sdk和sdk tools, 然后修改模拟器相应版本,运行报下面的错误。
查找解决方法:Android Studio中虚拟机运行时报错的解决方法,可以运行,没有提示上述错误了,但是app还是跑不起来。
解决方法:换个夜神模拟器试试。
查看了一下,自己的电脑的模拟器应该是正常的,所以可能是程序的问题。在尝试换个程序试试。
不错的开源项目:GitHub - twinone/rubik-robot: Rubik's Cube solver robot
- 模拟器API的版本可以高于SDK的版本,也就是新手机可以安装之前老的SDK开发的app,要高于对应的sdk的版本。
- 自己感觉运行之前的程序,认为可能是模拟器的问题,于是生成了apk,并在自己的电脑安装,界面出现的内容比模拟器多,但是也是不正常的,存在闪退情况。所以说在模拟器上能够跑的在手机上也大概率能跑。
闪退的原因是因为没有在应用管理里面给予相机和蓝牙权限等管理员权限,给予权限之后,则不会出现拍照即闪退的问题。
但是出现另一个问题就是识别完6个面后,不能完成赋值(识别完6个面后),闪退,自己之前认为是版本不兼容的问题,后来自己反复测试了6个面的识别,发现并不是所有的情况下都闪退,有时候识别全黑也是没有问题的,也能正常完成赋值操作,所以自己拿魔方测试了一下,发现正常识别魔方,它也不会闪退,而且识别率还是挺高的。
(二)另外一种可能是模拟器的问题。
以上是关于Android studio安装的主要内容,如果未能解决你的问题,请参考以下文章
Android Studio安装教程及调试(对新手友好简单实用)