Android studio 使用记录

2023-05-16

一、常用技巧

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

二、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后重启电脑即可,参考如下图
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android studio 使用记录 的相关文章

  • Android viewpager:添加/删除页面时出现奇怪的错误

    我不知道如何解释 所以我上传了一个视频Youtube http www youtube com watch v o5sn31IX Gc当我添加页面时一切正常 如果我从列表末尾开始并逐渐移至第一页 则删除页面也有效 但如果我删除 0 端之间的
  • 如何从菜单项获取视图引用?

    我试图获取菜单项的参考 但我就是不能 整个事情都在一个片段内 Menu boat accept menu xml menu menu
  • 如何让 MediaRouteSelector 显示可用的 MiraCast 和 Chromecast 设备?

    我正在尝试让我的媒体路由选择器同时显示 MiraCast 和 Chromecast 设备 我有一个 Chromecast 接收器应用程序 并且还使用 Android 中的演示 API 因此理想情况下 用户只需单击媒体路由器按钮并选择他们拥有
  • 迁移到 AndroidX 后,应用程序崩溃并尝试在空引用上调用 androidx.fragment.app.FragmentManagerImpl.isDestroyed()

    完整的堆栈仅包括 android 核心代码 java lang NullPointerException Attempt to invoke virtual method boolean androidx fragment app Frag
  • Android XML 解析与 RSS

    我有我的 Rss 文件项目
  • ViewPager 拦截所有 x 轴 onTouch 事件。如何禁用?

    Scope 有一个包含两个片段的viewpager 其中一个片段有一个布局 用于监听 X 轴上的 onTouch 变化 Problem 当沿 X 轴触摸和滑动时 布局几乎不会获取所有 Action Move 事件 看来 viewpager
  • GCM 条款和条件

    有谁知道在哪里可以找到有关哪些内容可以通过 GCM 通知发送以及哪些内容不可以发送的条款和条件 我似乎在任何地方都找不到任何文档 当您注册开设 Google API 帐户时 您会得到这些条款和条件 https developers goog
  • 创建 Android 智能应用横幅

    Android 设备有类似 iOS 6 智能应用横幅的解决方案吗 这是智能应用横幅的代码 从 Chrome 44 Beta 开始 您可以在 Android 版 Chrome 中推送您的应用程序 您网站上的本机应用程序安装横幅 请看下面的答案
  • 使用 Android 将文件上传到 Django Web 服务

    我正在开发一个与 Django 后端交互的 Android 应用程序 我已经使用 mod wsgi 部署了 Web 服务 并且有许多 Web 服务调用可以工作并且已经过测试 所以我知道一切都应该工作 所有其他呼叫都工作正常 这是我在Andr
  • 按下后退按钮时停止 Fragments 中的 AsyncTask

    我有一个托管片段的活动 按下按钮会通过 FragmentTransaction 从片段 A 转到片段 B 并将其添加到返回堆栈中 现在片段 B 有一个 AsyncTask 实现 它从 sdcard 加载图像并在加载图像时将其发布 如果我按
  • android:如何将图像添加到相册

    任何人都可以分享代码 或向我指出 Android 示例代码 来帮助我将图像添加到媒体商店 图库 中的相册中 在我的应用程序中 我从服务器下载图像 并使用相机 通过 Intent 拍摄新图像 我想将这些图像组织在特定于应用程序的相册中 类似于
  • 如何在 Android WebView 中从远程 URL 访问本地资源?

    要加载 HTML 中的资源 我使用 URLfile android asset my image png 当我在本地加载 HTML 时 它可以工作 例如 使用WebView loadData method 但是 我无法从远程网站加载本地资源
  • 如何在真实设备上模拟来电? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 出于测试目的 我想在真实的 Andr
  • adb shell 的 BroadcastReceiver 权限

    考虑一个简单的工具 使用BroadcastReceiver实现一个简单的目标 因为这不应该被其他应用程序使用 所以它定义了一个保护级别为signature or signatureOrSystem
  • Android 上页面留在后台时会触发“beforeunload”事件

    我正在尝试制作一个在导航时弹出的简单加载微调器 它在导航离开时使用 beforeunload 事件显示 并在完成后使用 load 事件再次隐藏自身 问题是 当我将页面留在手机后台时 例如几个小时后 beforeunload 事件触发并显示微
  • 如何以编程方式滚动 Horizo​​ntalScrollView

    我有一个HorizontalScrollView其中包含一个RelativeLayout 该布局在 XML 中为空 并由 onCreate 中的 java 填充 我希望这个滚动视图最初位于中间的某个位置RelativeLayout 它比屏幕
  • Robotium 和系统对话框

    当我尝试与蓝牙设备配对时 会出现带有 PIN 码的系统确认对话框 有 取消 和 确定 按钮 但我无法使用 Robotium 单击它们 如何在 Robotium 中使用 Android 操作系统对话框 谢谢 这对我有用 solo clickO
  • 安卓应用安全

    我想开发一个用户数据非常敏感的应用程序 我是开发新手 所以不确定以下内容 技术对于安全或高效来说是必要的 请留下您的评论 提前致谢 为了额外的安全性 我们可以避开市场 游戏商店 并将应用程序安装在个人设备上 它会让它更安全吗 我必须在设备上
  • Phonegap - 自动包含正确的科尔多瓦

    我正在 iOS 和 Android 上开发一个 PhoneGap 应用程序 并使用 git 控制我的 www 目录版本 我知道我的 HTML 文件需要包含正确的 Cordova js 文件 取决于我当前正在开发的平台 当有人在 Androi
  • 根据内容对列表视图中的相似行进行分组

    i have a listview that displays a set of rows each row is clickable now i wish to group similar type of rows under one h

随机推荐

  • Linux(ubuntu)安装AppImage步骤

    方法一 设置允许执行文件 xff0c 双击无反应 运行以下代码 xff0c 出错 panda6 1 0 x86 64 appimage 运行sudo apt get install fuse 直接输入以下 xff0c 即可运行 panda6
  • Solidworks导出URDF总结(Humble)

    环境 Solidwoks2021 SP5 xff1b Ubuntu22 04 xff1b ROS2 Humble 步骤 基本步骤参考 xff1a Solidworks导出URDF总结 xff08 Noetic xff09 本文只介绍不同之处
  • 博途V17(S7-1200)OPC-UA通信测试

    文章目录 环境 步骤 安装 博途端 UAExpert端 参考 环境 S7 1200 TIA Portal V17 笔记本 与PLC网线连接 Windows10 UaExpert 步骤 安装 TIA Portal v17 博途 安装教程附安装
  • LabVIEW调用Matlab函数方法总结

    文章目录 方法分类Matlab脚本节点方法Coder 43 VS方法 Net方法COM ActiveX方法 故障问题解决调用带有符号运算的方法 在 LabVIEW与Matlab混合编程进行图像处理 附带颜色栏Colorbar 的基础上做个简
  • Linux内核之自旋锁和信号量

    Linux内核实现了多种同步方法 xff0c 指令级支持的原子操作 自旋锁 信号量 互斥锁 完成量 大内核锁等等 xff0c 我就挑比较有代表性的两个锁 自旋锁和信号量来分析 自旋锁 Linux内核中最常用的锁就是自旋锁 spin lock
  • NXP S32K146 FREERTOS工程配置UART底层驱动(一)

    MCU平台还是S32K146 xff0c 开发环境是S32DS 用官方的SDK3 0 0 xff0c PE配置外设 xff0c 生成generation code 在SDK上边封装函数 xff0c 第三库用的ringbuf循环队列 xff0
  • Linux系列 | Linux 离线安装配置MySQL5.7.25教程(附mysql命令大全)

    Linux 离线安装配置MySQL5 7 25教程 1 安装环境2 前置工作2 1 卸载系统自带的mariadb2 2 卸载旧版本mysql xff08 可跳过 xff09 2 3 删除etc目录下的my cnf文件 xff08 没有可跳过
  • 创建Vue项目报HADOOP_CONF_DIR错解决方法

    创建Vue项目报错解决方法 创建Vue ui项目时终端报错 xff1a ERROR Failed to get response from No HADOOP CONF DIR set Please specify it either sp
  • android调试常见问题(持续更新)

    1 jni调用时出现以下错误 failed dlopen failed cannot locate symbol rand referenced by xxx 通常是ndk编译的平台太低导致 打开jni的Application mk 修改里
  • 大数据系列 | 解决Hadoop不能打开端口8088的网页问题(50070可以打开)

    解决Hadoop不能打开端口8088的网页问题 50070可以打开 原因 xff1a 本地hosts文件没有添加集群ip集群环境没有开放8088端口hadoop的配置文件yarn site xml问题 解决方法 xff1a 首先检查一下使用
  • Vue2前端请求API数据跨域问题解决

    Vue2前端请求API数据跨域问题解决方法 前端 xff1a Vue2 接口使用 xff1a API 问题报错提示 xff1a Access to XMLHttpRequest at span class token string 39 h
  • vmware虚拟机ubuntu18.04桌面版安装教程

    vmware虚拟机ubuntu18 04桌面版安装教程 一 安装环境 xff1a VMware Workstation xff1a 15 5Pro Ubuntu xff1a 18 04桌面版 二 安装教程 xff1a 创建虚拟机 选择 自定
  • Python系列 | Turtle绘图学习之羽毛球随机点训练场

    绘图之前先要安装turtle模块 xff1a python 2 xff1a pip install turtle python 3 pip3 install turtle 绘图思路 xff1a 首先绘制出外正方形和内线 xff0c 然后使用
  • 大数据系列 | 全国职业院校技能大赛大数据应用技术赛项笔记分享-离线抽取模块

    离线数据抽取 写在前面 xff1a 此笔记是本人在备战2022年大数据赛项整理出来的 xff0c 不涉及国赛涉密内容 xff0c 如点赞收藏理想 xff0c 我将会把所有模块的笔记开源分享出来 xff0c 如有想询问国赛经验的可以关注私聊我
  • C语言系列 | 简单题练习

    第一题 xff1a 简易计算器 思路 xff1a 定义变量后使用while无限循环执行 xff0c 使用switch语句实现多分支选择 源代码 xff1a span class token macro property span class
  • Python系列 | 基于Requests和PyEcharts实现爬取博客数据可视化大屏分析

    博客数据分析大屏可视化实现的效果 xff1a 一 核心功能设计 学习笔记分享 xff1a 博客作者数据分析实现的思路大致为爬虫 用户通过控制台输入用户博客地址和博客文章地址 和大屏可视化展示两方面 接下来我们可以通过以下几步实现需求 xff
  • C++ 引用 乱七八糟的总结

    1 什么是 引用 xff1f 申明和使用 引用 要注意哪些问题 xff1f 引用就是某个目标变量的 别名 alias xff0c 对应用的操作与对变量直接操作效果完全相同 申明一个引用的时候 xff0c 切记要对其进行初始化 引用声明完毕后
  • 麻将胡牌算法(查表法 和 拆解法)

    1 查表法计算麻将胡牌 原理 http hp vector co jp authors VA046927 mjscore mjalgorism html 2 跟拆解法对比进行效率比较 package main import 34 fmt 3
  • FreeRTOS第一步:创建多任务

    目录 单片机裸机开发与基于操作系统开发 FreeRTOS介绍 创建多任务 SRAM 动态内存 一 动态内存空间的堆从哪里来 xff1a 二 定义任务函数 xff1a 三 定义任务栈 xff1a 四 定义任务控制块指针 xff1a 五 动态创
  • Android studio 使用记录

    一 常用技巧 1 代码格式化 Code gt Reformat Code 2 自动删除多余的import Code gt Optimize imports 3 从工程中查找某个字符串 Edit gt Find gt Find in path