Android studio 使用记录

一、常用技巧

1.代码格式化:

 Code->Reformat Code

2.自动删除多余的import

 Code->Optimize imports

3.从工程中查找某个字符串

 Edit->Find->Find in path

4.如果想把菜单上的功能添加到工具栏

 工具栏上右单机->Custom …->Main Toolbar->Add After…->弹出的菜单中选择添加项
 如果要修改工具栏图标,点击Edit Action Icon,注意工具栏图标大小为16*16

5.如果Gradle build 下载对于版本Grandle出错时,打开c盘下的对应Grandle删除后重新Sync,

 例如1:C:\Users\owner.gradle\wrapper\dists\gradle-4.1-all\bzyivzo6n839fup2jbap0tjew\下的所有文件都删除,然后回到Android studio里点击Retry
 例如2:下载(https://mirrors.cloud.tencent.com/gradle/)对应的zip版本,放到C:\Users\owner.gradle\wrapper\dists\gradle-4.1-all\bzyivzo6n839fup2jbap0tjew\目录下,android studio上重新Sync from gradle

6.删除一整行代码

ctrl+y

7.ndk调试

1.SDK-Manager增加 cmake 和 LLDB

8.私有变量自动加 “m_” 前缀

File->Settings->Editor->CodeStyle->Java->Code Generation
在Naming项下的 Field行 name prefix列 下填写m_ 即可。

9.在运行app项目时Run窗口或者Build窗口日志出现乱码

用记事本分别打开studio.exe.vmoptions或 studio64.exe.vmoptions
添加 -Dfile.encoding=UTF-8 ,例如

...
-Djna.nosys=true
-Djna.boot.library.path=
-Didea.vendor.name=Google
-Dfile.encoding=UTF-8

10. Logcat窗口打印出来的日志出现乱码

1)打开Android Studio,然后在菜单栏找到 Help ——> Edit Custom VM Options选项
2)点击后,如果没有此文件,提示下面的窗口,直接点击创建
3)在打开的文件窗口中,增加下面一行代码,保存即可
-Dfile.encoding=UTF-8
关闭重新启动Android Studio

switch来处理R.id.xx已经淘汰需要用if else来替代,可以用下面的快捷键来处理

随后选中“switch”,ALt+Enter同时选中,弹出对话框,选择“Replace ‘switch‘ with ‘if‘”,

二、androd.support.v4.app.Fragment 和 android.app.Fragment的区别

1.支持版本:

1)androd.support.v4.app.Fragment

android:miniSdkVersion=“4” 即1.6之后
2)android.app.Fragment
android:miniSdkVersion=“11” 即3.0之后

2.activity中获取方法

1)androd.support.v4.app.Fragment

getSupportFragmentManager().findFragmentById(R.id.userList) 继承android.support.v4.app.FragmentActivity
2)android.app.Fragment
getFragmentManager().findFragmentById(R.id.userList) 继承Activity

3.标签使用情况

1)androd.support.v4.app.Fragment不能使用<fragment>标签,否则抛出android.view.inflateException:Binary XML file line #7:Error inflating class fragment异常
2)android.app.Fragment可以使用<fragment>标签

三、其他:

1.compile转而使用implementation和api这两个关键字,个人总结一些区别

1)implementation类似于“praivte”,module引用implementation只应用于自身,其他module如果dependency该module,无法使用implementation表明的路径。

2)api类似于“public”,​其他module如果dependency该module,可以使用implementation表明的路径。也就跟compile类似​​​​

2.gradle中加入多moudle

直接修改settings.gradle(当然你也可以利用IDE的ui上操作),这个文件是全局的项目配置文件,里面主要声明一些需要加入gradle的module,setting.gradle对应的是gradle中的Settings对象。
例子1:
include ':app' ,':sdk'
例子2:
include ':app'
include(':sdk')
project(':sdk').projectDir = new File(settingsDir, '../CommonSDK/')

说明:
例子1中多个module在都做主目录下include后用逗号隔开即可。例子2中 include调用后,生成了一个名为:sdk的Project对象,project(‘:sdk’)取出这个对象,设置Project的 projectDir属性(请看Project类的文档)
参考:

gradle中的Setting对象帮助文档:(https://docs.gradle.org/current/dsl/org.gradle.api.initialization.Settings.html)

Q&A

问题1:Unfortunately you can’t have non-Gradle Java modules and Android-Gradle modules in one project.

解决:很多出现这个提示是由于不是通过IDE增加Modules而是直接在文件夹下 增加或者修改Modules名称导致IDE并不知道你修改了,所以解决办法是:先关闭android studio,然后删除主目录下的.idea文件夹,然后再重新打开项目,让其重新生成.idea文件夹即可。当然其他有人说通过“ File -> Invalidate Caches / Restart”的方式解决,我没遇到过可能是其他原因导致,遇到的小伙伴可以尝试下

问题2:

新的android studio编译时会有下面警告(gradle):
Configuration ‘compile’ is obsolete and has been replaced with ‘implementation’.
It will be removed at the end of 2018
解决:意思是 compile关键字会在2018年底取消,会被api替代,所以会报这个警告,解决警告的方式就是换成api就好了。例如:compile ‘org.greenrobot:eventbus:3.0.0’ 替换成 api ‘org.greenrobot:eventbus:3.0.0’

问题3:

java.lang.RuntimeException: Manifest merger failed with multiple errors, see logs
问题分析:这里主要是Manifest在merger时出错,
1.打开AndroidManifest.xml,
2.点击Merged Manifest标签,可以看到哪里出错了,进行修正
如图在这里插入图片描述

问题4:Android studio更新插件失败的解决方案,错误信息:Plugin Fierbase Services was not installed:Cannot download

在这里插入图片描述
解决办法:把下载链接复制粘贴在浏览器上或者迅雷,把链接头部的http改为https就可以下载了,下载完插件之后可以直接外部安装更新插件,然后重启就可以了,如下图:
菜单->设置
在这里插入图片描述
在这里插入图片描述
重启后可以看到firebase 版本4.0.0
在这里插入图片描述

问题5:修改在C盘中.gradle文件夹位置

方案:在系统环境变量中添加GRADLE_USER_HOME后重启电脑即可,参考如下图
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值