Android Studio 整理
来源:互联网 发布:网络诋毁企业 编辑:程序博客网 时间:2024/06/05 08:38
Android Studio 整理
1. 同步&build
(1). 使用AS下载gradle(文件gradle-wrapper.properties)比较慢,可以先把gradle***.zip下载到本地,然后再把zip文件放到指定文件夹中(Window: <个人文件夹>/.gradle/wrapper/dists/gradle***/afhkydqrb47n2/;Ubuntu: home/name/.gradle/wrapper/dists/gradle***/afhkydqrb47n2/),然后重启AS 或者 点击工具栏的 Sync Project Gradle Files即可
(2). gradle搞定后,会从jcenter和maven中同步相应的第三方库,设置网络代理然后同步,可以从Settings -> Http Proxy设置,也可以在gradle.propterties中添加代理地址。
Eg:
systemProp.https.proxyHost=*
systemProp.https.proxyPort=*
systemProp.http.proxyHost=*
systemProp.http.proxyPort=*
2. 优化Gradle构建速度
(1). 升级Gradle版本
File -> Project Structure -> Project中查看现在使用的Gradle版本。
从Gradle网站查看下载最新的Gradle版本(Gradle版本升级后,AS中的Android Gradle Plugin有时也需要升级)https://services.gradle.org/distributions/
把下载的Gradle解析并放到本地Gradle文件中:
设置使用本地的新下载的Gradle,在File -> Settings -> Build, Execution, Deployment -> Gradle -> Use local gradle distribution -> Gradle Home中指定下载的Gradle地址
(2). 打开Offline mode,Gradle daemon 和 parallel build(并行构建,对于有Project和Library时可以加快构建速度)
1>. 打开Offline mode让Gradle忽略最新版本检查。
在File -> Settings -> Build, Execution, Deployment -> Gradle ->勾选Offline work
2>. 在File -> Settings -> Build, Execution, Deployment -> Compiler 中勾选“Compile independent modules in parallel”和 在Command-line Options中填写 –offline
3>. 设置Gradle daemon, parallel build和gradle jvm。如果只设置这个Project的话,只需修改/gradle.properties即可;如果设置全局的话,需要修改<个人文件夹>/.gradle/gradle.properties。
参考:
org.gradle.jvmargs=-Xmx5120m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8#下面这个jvm的值还小# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8org.gradle.daemon=trueorg.gradle.parallel=trueorg.gradle.configureondemand=trueandroid.enableBuildCache=true
(3). 打开 incremental dexign 和 tweak memory
在Module:app中的build.gradle中添加下面内容,
dexOptions { incremental true javaMaxHeapSize "12g"}
参考地址:https://hackernoon.com/speed-up-gradle-build-in-android-studio-80a5f74ac9ed
3. 设置代理
http/https
systemProp.https.proxyHost=X.X.X.X
systemProp.https.proxyPort=XXXX
systemProp.http.proxyHost=X.X.X.X
systemProp.http.proxyPort=XXXX
socks5
org.gradle.jvmargs=-DsocksProxyHost=127.0.0.1 -DsocksProxyPort=7077
在$HOME/.gradle/gradle.properties 文件中加入上面那句,这样就可以全局开启 gradle 代理
4. 混淆打包问题
(1). 打包时提示“avoid non-default constructors in fragment”的错误
原因:
Android Developer中Fragment的介绍:
处理方式:
- 忽略这个问题
在build.gradle中添加下面内容:
android { lintOptions { disable 'ValidFragment' checkReleaseBuilds false } }
或者在代码处添加 @SuppressLint(“ValidFragment”)
- 实现static newInstance()方法
这样写的解释
Eg:
public static final AlertFragment newInstance(int title, String message){ AlertFragment f = new AlertFragment(); Bundle bdl = new Bundle(2); bdl.putInt(EXTRA_TITLE, title); bdl.putString(EXTRA_MESSAGE, message); f.setArguments(bdl); return f;}...@Overridepublic void onCreate(Bundle savedInstanceState){ title = getArguments().getInt(EXTRA_TITLE); message = getArguments().getString(EXTRA_MESSAGE); //... //etc //...}
(2). 打包时提示’:transformClassesAndResourcesWithProguardForRelease’错误
参考:
proguard-rules.pro文件中删除包含 -injars, -outjars, 和 -libraryjars的行。有时需要保留libs/文件夹下面的jar包的类,参考示例:
-keep class org.ejml.** { *; }-dontwarn org.ejml.**-keep class org.ddogleg.** { *; }-dontwarn org.ddogleg.**
参考链接:
https://stackoverflow.com/questions/35333453/migration-from-eclipse-to-android-studio-proguard-errors-with-libraryjars
https://stackoverflow.com/questions/34900266/how-to-get-proguards-libraryjars-with-filter-working-in-android-studio
- android studio 问题整理
- android studio快捷键整理
- Android Studio 快捷键整理
- Android Studio快捷键整理
- Android Studio 快捷键整理
- Android Studio快捷键整理
- Android Studio 快捷键整理
- Android Studio 入门整理
- Android Studio快捷键[整理]
- Android Studio插件整理
- android studio错误整理
- Android Studio常见问题整理
- Android Studio快捷键整理
- Android Studio 快捷键整理
- Android Studio快捷键整理
- android studio 问题整理
- Android Studio插件整理
- Android Studio插件整理
- CSU1511-残缺的棋盘-模拟/BFS
- CSU1503-点到圆弧的距离-几何
- linux的多任务编程-线程池
- python列表的操作 01
- 如何用ipad或者iphone查看java源码
- Android Studio 整理
- 假设字符串为 A|B|C|D|E|F|G|H|aaa 处理后获取 A|B|,C|D|E|,F|G|H|,aaa
- 终端中安装VMware tools
- 草根学Python(五) 条件语句和循环语句
- SVN版本控制
- 算法分析课每周练习 Longest Increasing Path in a Matrix
- C++每日一课(九)
- linux基本知识整理
- [week 12][Leetcode][Dynamic Programming] Unique Paths