Android Studio 相关
1.由于我的jdk是32位的,安装成功后报 "64 bit jdk not found" 。百度的方法都是编辑studio.bat文件,但是我的安装目录下并没有这个文件。我就在bin文件夹下挨个打开文本类文件,还是找不到相应的配置文件。然后发现bin下有 studio.exe 和 studio64.exe 两个文件。打开studio.exe,就不报这个错误了。所以 32位的jdk需要运行studio.exe
2.Android Studio安装完成后,如果直接启动,Android Studio会去获取 android sdk 组件信息,这个过程相当慢,还经常加载失败(原因大家都懂的),导致Android Studio启动不起开(Unable to access Android SDK add on list)。解决办法就是不去获取android sdk 组件信息。解决方法:1)进入刚安装的Android Studio目录下的bin目录。找到idea.properties文件,用文本编辑器打开。2)在idea.properties文件末尾添加一行:disable.android.first.run=true,然后保存文件。3)关闭Android Studio后重新启动,便可进入界面。
4.导入整个工作空间的方法:http://www.111cn.net/sj/android/74260.htm,http://www.open-open.com/lib/view/open1419597450031.html
5.解决找不到符号:http://stackoverflow.com/questions/27525451/android-studio-unmappable-character-for-encoding-utf-8 (即在android括号下加入那一行,设置你要的编码集,有时候只是少数文件的注释有编码问题,我就会删掉,用英文重新写好注释,就没问题了)
6.导入jar/lib:
1)手动下载添加: http://www.th7.cn/Program/Android/201405/207001.shtml
即下载-复制到目录下-->右键 add as library-->在build.gradle 文件的dependencies处写上相应的代码-->点击软件弹出的Asyn按钮或者clean/rebuild一下项目-->完成。
2)gradle的方法: http://gmariotti.blogspot.com/2013/07/how-to-add-actionbarcompat-to-your.html
7.SVN文件状态显示:
8.安卓模拟器加速:http://www.developer.com/ws/android/development-tools/haxm-speeds-up-the-android-emulator.html
http://www.cnblogs.com/csulennon/p/4178404.html
-
当我把eclipse的项目移植到Android Studio,发现以前写的匿名内部类,比如OnclickListener显示的时候都成了Lambda的形式,这个是Android Studio的Code Foding的功能,代码没有变,并没有用 java 8,只是显示的时候用了这样简约的显示方式,方便看代码。更多信息:https://hedgehogjim.wordpress.com/2014/01/02/lambda-expressions-in-android-studio/
-
An Android Studio Gradle Build Variants Example(用一套代码,通过配置的方式生成不同的APP,适用于定制APP等情况,能够提高生产效率): http://www.techotopia.com/index.php/An_Android_Studio_Gradle_Build_Variants_Example
-
Android Studio的tips,包括代码格式化codeStyles :http://blog.lemberg.co.uk/android-project-unwritten-rules
同一个团队用同一套codeStyles,比如我下载了AndroidStyle.xml, 放到目录 C:\Users\Administrator.AndroidStudio\config\codestyles 下面,然后如此文中设置下就好了
为了减少svn不必要的提交,或者提交了本地化的文件影响其他成员,可以在svn提交页面设置ignore list。
12.给SDK Manager设置代理:
image.png
13.给 AS(Android Studio)设置代理(代理地址 mirrors.neusoft.edu.cn):
14.编译错误:运行时出现 finished with non-zero exit value 2:http://blog.csdn.net/u014231734/article/details/44725735
http://blog.csdn.net/yuqiaoo/article/details/46009635
(我的原因是原来用的是v4的support包,后来加入v7的support包的时候报这个错,删掉v4的包就可以了。后来又遇到这个问题,是因为
'com.github.JakeWharton:ViewPagerIndicator'
和
'cn.trinea.android.view.autoscrollviewpager:android-auto-scroll-view-pager'
两个库冲突了,解决方案是其中一个不用gradle导入,而是代码导入JakeWharton:ViewPagerIndicator'中需要的几个类。
)
如果还是没找到问题,尝试:
1.先启用 gradle命令行:
1.1 配置Gradle环境变量(mac下)
http://www.cnblogs.com/elfsundae/archive/2010/12/01/1893190.html,http://blog.csdn.net/lincyang/article/details/43853259
1.2 查看是那个jar包重复了:
http://stackoverflow.com/questions/20989317/multiple-dex-files-define-landroid-support-v4-accessibilityservice-accessibility
15.弹出框:“A fatal exception has occurred. Program will exit.” 控制台找不到错误日志:http://m.blog.csdn.net/blog/u010102162/25203245 如果有错误日志,还是要根据日志判断哪里错了
- SVN 配置:http://www.2cto.com/kf/201504/393631.html
http://blog.csdn.net/books1958/article/details/42493965
也就是第一次用AS时,需要确认 AS 的 set 菜单里的subversion 里的 svn 地址是否正确,而且该地址下需要有svn.exe 文件,没有的话,打开svn安装程序,就会弹出对话框,你选择修复,把client安装上去就好了,链接 http://www.2cto.com/kf/201504/393631.html 里有详细介绍。然后你新建的项目,如果要放入svn,需要先上传,再把原文件删掉(删之前最好备份下),再check in, 就能正常使用svn了。当然一个比较简单的方法,是直接把新建的项目复制到svn里,add进去,就是svn项目了,然后check in就行了
17:ApplicationId 与 PackageName:http://blog.csdn.net/maosidiaoxian/article/details/41719357
18:模拟器配置:http://blog.csdn.net/u012319317/article/details/45891055
19: 报错:“Error:Execution failed for task ':app:transformClassesWithDexForDuotinDebug'. > com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/java'' finished with non-zero exit value 2
file:///Users/apple/Downloads/libs/ShareSDK-Wechat-Moments-2.6.5.jar”
开始还以为是要装java 1.8 后来发现是v4包冲突导致的,看来AS的错误提醒也不一定准确。解决方法是项目内只用一个v4包,并且是用gradle来添加(快捷方式是项目右键 open module setting, 点击dependencies,点击左下角加号即可在打开的窗口选择要添加的lib了。
- 报的错:Bad class file magic or version
解决方法:
找到gradle配置文件中的这一行 apply plugin:'java'
在下面添加:sourceCompatibility = 1.7targetCompatibility = 1.7可能是这个project只能用1.7版本的java编译
21.在Android Studio中编译本地module库时将会同时生成.jar与.aar文件
位置分别如下
jar包
aar包
image.png-
快捷键名称:
1.跳到下一处变量:Find Word at Caret -
跳到父方法:super Method
-
在。。。中显示:select in
4.搜索类:navigate下的class。。。
5.快速解决/提示: intention action -
注释: comment
24.在Mac上点击alt+f1,原以为是select in的快捷键,但弹出来mac显示器的设置页面。原因是,如果没有外接键盘,mac上需要按住fn
才能使用f1等f键盘。如果外接了键盘,在键盘上不需要按fn键,在mac本机键盘上仍需要按住fn键。
也可以在Mac中点击“系统偏好设置”——> ”键盘“ ——> 勾选”将F1、F2等键用作标准功能键“ 这样按alt+f1是select in,但设置
Mac的亮度时需要按Fn.
25.自动注释&模板
配置新建Activity和Fragment的模板:
windows上的模板文件地址分别是:
android-studio\plugins\android\lib\templates\activities
android-studio\plugins\android\lib\templates\other\BlankFragment
26.mac下Android studio如何使用SVN进行版本控制
-
新建类时的自动注释设置:
点击Preferences ——> Editor ——> File and Code Templates 选中右边inclueds tab下的File Header,就可以修改了。 -
报错 “Could not find method android() for arguments” 解决方案:直接删掉此行,不影响编译。
-
报错 “Error:A problem occurred configuring project ':app' Caused by: java.lang.NullPointerException (no error message)“
我的原因是没有在local.properties里设置 ndk.dir -
安装APK文件时报错”安装包似乎/好像损坏“
- 可能是启用了instant run之类的优化功能导致的,那么就用gradle或者菜单栏build的导出按钮生成APK
./gradlew -p assembleDebug 或者 ./gradlew -p assembleRelease
(或者点击AS界面右侧gradle tasks下的app-tasks-build-assemblexx 此时禁用instant run后点击run产生的APK可能仍不可安装。 - 可能是最新版的AS的v2SigningEnabled导致的,那么设置v2SigningEnabled false
- 可能是启用了instant run之类的优化功能导致的,那么就用gradle或者菜单栏build的导出按钮生成APK
-
Unable to merge dex:
AS报错Unable to merge dex
Dex error On Android Studio 3.0 Beta4
-
Error:SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable.
解决方案: 在local.properties文件配置sdk.dir文件,或者确定导入项目的时候,选择的是最外面的build.gradle -
Error:null value in entry: incrementalFolder generatedFiles =null
-
项目依赖冲突(dependencies duplicate entries)终极解决方法:
Android Studio架包打包和依赖冲突解决
-
如何修改aar或者jar文件
命令行的方式
或者下一个7z软件,可以删除里面的jar,pom等文件,也可以修改文
件。 -
如果一定要保留两个冲突的jar包,就采用jarjar批量更换包名的方法
有关 Android Studio 重复引入包的问题和解决方案
-
"android Too many arguments for public..."
解决方案:如果是jar包版本变了导致接口参数改变,rebuild仍报这个错误,就先去掉依赖,再重新依赖。 -
有时候想跳进库函数看安卓SDK源码,但是提示源码未下载,方法里都是Stub。而按照提示点击下载也无效。这时候可以点击下图中的Edit
image.png
重新走一遍setUp的流程,就好了
-
mapping文件位置:build/outputs/mapping/release/mapping.txt
-
AS中修改模板需要修改的文件:
比如我的templetesDir 是 \androidStudio\plugins\android\lib\templates
想要在new -> Activity -> Empty Activity
和new -> Fragment -> Fragment(Blank) 的时候套用模板
需要修改的文件如下:
//common
templetesDir\activities\common\root\AndroidManifest.xml.ftl
templetesDir\activities\common\common_globals.xml.ftl
//activity
templetesDir\activities\EmptyActivity\root\src\app_package\SimpleActivity.kt.ftl
templetesDir\activities\common\root\res\layout\simple.xml.ftl
// fragment
templetesDir\other\BlankFragment\recipe.xml.ftl
templetesDir\other\BlankFragment\root\src\app_package\BlankFragment.kt.ftl
templetesDir\other\BlankFragment\root\res\layout\fragment_blank.xml.ftl
当然,建议是新建模板,而不是修改AS自带的模板,不然升级AS时会遇到问题
-
更新依赖的aar后,AS编辑器报红,但是不影响打包.尝试各种invalidate and restart,rebuild,删build文件夹,不管用.总结下网上找到的解决方法:
方法1: 尝试 ./gradlew cleanBuildCache(本人尝试无效)
方法2: disable caching(未尝试)
方法3: 在根目录的setting.gradle将项目注释掉, 然后 Gradle Sync, 然后恢复项目, 然后Gradle Sync. 就可以了.(有效, 推荐)
方法4: 将依赖的aar重命名, 即文件和gradle里的依赖代码都重命名, 重新gradle sync一下,就OK了.这时候重新改回原来的文件名,也是OK的.(有效)
方法5: 将依赖的aar重命名, 只将文件重命名, 重新gradle sync一下,会编译不通过.这时候重新改回原来的文件名,就OK了.(有效) -
Android studio Program type already present: com.****.BuildConfig
Android开发之——依赖冲突Program type already present -
Error : Please Select android SDK:
解决错误:Error : Please Select android SDK
或者是gradle的Build tools version没有在本地找到 -
安装APK时: INSTALL_PARSE_FAILED_NO_CERTIFICATES
原因1: 网上其他文章都会说的, 签名的问题
原因2: 仔细看AS的log, 比如我的是引用的一个java jar里的一个配置文件无法被validate.
对于原因2的解决方案:
在根目录的build.gradle配置packagingOptions,如:
packagingOptions {
exclude 'edl-v10.html'
exclude 'META-INF/rxjava.properties'
exclude 'META-INF/ECLIPSE_.SF'
exclude 'META-INF/ECLIPSE_.RSA'
}
需要注意的是, 如果packagingOptions的pickFirst匹配了文件, exclude将无效.
所以如果要exclude, 请不要设置 pickFirst '**'
-
java.lang.UnsatisfiedLinkError...couldn't find "xxx.so"
除了配置不对, 也可能需要清空相关的缓存.clean build还不行的话,试试AS的build菜单下的
Rebuild Project 和 Refresh Linked C++ Projects, 以及右上角的Gradle Sync按钮
-
gradle build报错:
Failed to execute aapt
Execution failed for task ':app:processReleaseResources'.
Execution failed for task ':app:processDebugResources'.
解决方案: 参照
Execution failed for task ':app:processReleaseResources'.
将compileSdkVersion和buildToolsVersion改成
compileSdkVersion: 28,
buildToolsVersion: "28.0.3"
解决了问题
exception in plugin android support
Argument for @NotNull parameter 'message' of com/android/tools/idea/gradle/project/sync
解决方案: Argument for @NotNull parameter 'message' of com/android/tools/idea/gradle/project/sync
- 查看gpu的情况:
高通GPU可以下载APK:Trepn Profiler
Mali GPU在/sys/devices/ffa30000.gpu目录下查看相应文件.
比如:
/sys/devices/platform/ffa30000.gpu/utilisation
/sys/devices/platform/ffa30000.gpu/devfreq/ffa30000.gpu/available_frequencies
/sys/devices/platform/ffa30000.gpu/devfreq/ffa30000.gpu/cur_freq
/sys/devices/platform/ffa30000.gpu/dvfs
参考:
如何参看Mali系列GPU的使用率