Android开发中,让你事半功倍的整理归档(一)
来源:互联网 发布:mysql gt lt 大于小于 编辑:程序博客网 时间:2024/06/14 06:01
现在开始写一个APP时,在前期搭建一个好的框架是能让你在开发中节省很多时间,提升你的开发效率的。所以我准备写一些文章,(AS、框架、UI、代码…..)目的就是让你的项目尽可能变得更易维护,更节省时间,以及避免一些容易犯错的地方…..
AS快捷键、插件
第一篇就介绍下开发工具,基本的配置就不说了!重点介绍下常用插件,配置…..
”工欲善其事,必先利其器“,AS大家应该都很熟了,这里的话我只写些我认为比较好用的一些快捷键和插件。如有更好的欢迎补充交流。
- 快捷键
- 插件
Gradle配置
Gradle一些常用配置
build.gradle
在build.gradle(project)添加一些编译的版本号,方便同一管理
ext { compileSdkVersion = 25 buildToolsVersion = "25.0.2" minSdkVersion = 17 targetSdkVersion = 25 supportLibraryVersion = "25.2.0"}
compileSdkVersion rootProject.ext.compileSdkVersion
build.gradle(module)
添加第三依赖库的时候,也可以三方库的版本管理
ext { dagger2Version = '2.0' leakcanaryVersion = '1.3' blockcanaryVersion = '1.0.0' metricsVersion = '0.4'}
compile "com.google.dagger:dagger:${dagger2Version}"
签名配置
在gradle.properties添加Key的信息
KEYSTORE_FILE = C:\\Users\\Documents\\Android\\HelloWorld.jksKEYSTORE_PASSWORD = xxxxxxKEY_ALIAS = xxxxxxKEY_PASSWORD = xxxxxx
builde.gradle(module)
apply plugin: 'com.android.application'apply plugin: 'android-apt'android { compileSdkVersion rootProject.ext.compileSdkVersion buildToolsVersion rootProject.ext.buildToolsVersion defaultConfig { applicationId "com.xiahao.geek" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion versionCode Integer.parseInt(project.VERSION_CODE) versionName project.VERSION_NAME testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" vectorDrawables.useSupportLibrary = true resConfigs "zh" // 仅支持中文 } signingConfigs { release { Properties p = new Properties() p.load(new FileInputStream(project.file('release.properties'))) keyAlias props['KEY_ALIAS'] keyPassword props['KEY_PASSWORD'] storeFile file(props['KEYSTORE_FILE']) storePassword props['KEYSTORE_PASSWORD'] } debug { storeFile file("debug.keystore") } } buildTypes { release { shrinkResources true signingConfig signingConfigs.release minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard.cfg' buildConfigField "boolean", "LOG_DEBUG", "false" } debug { signingConfig signingConfigs.debug minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard.cfg' buildConfigField "boolean", "LOG_DEBUG", "true" } } packagingOptions { pickFirst 'META-INF/rxjava.properties' } productFlavors { dev {}// Store360 {}// QQ {}// WanDouJia {}// Flyme {}// Market91 {}// AnZhuo {}// BaiDu {} } productFlavors.all { flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name] }}ext { butter_knife_version = "8.4.0" retrofitVersion = "2.0.2" okhttpVersion = "3.2.0"}dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile "com.android.support:appcompat-v7:${rootProject.ext.supportVersion}" compile "com.android.support:support-v13:${rootProject.ext.supportVersion}"compile "com.google.dagger:dagger:${dagger2Version}"}
关于gradle的配置这里只是一些常用的,具体还得根据你自己需要配置。
关于用AS常见的一些错误
- 将Eclipse项目导入到Android studio 中 很多点9图出现问题解决方法:
在build.gradle里添加以下两句:
aaptOptions.cruncherEnabled = false aaptOptions.useNewCruncher = false
- 将项目导入到AS中出现以下问题
Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'. > com.android.bui
在build.grade中添加以下代码
android{packagingOptions {exclude 'META-INF/DEPENDENCIES.txt'exclude 'META-INF/NOTICE'exclude 'META-INF/NOTICE.txt'exclude 'META-INF/LICENSE'exclude 'META-INF/LICENSE.txt' }}
- 未知错误
Error:Timeout waiting to lock cp_proj class cache for build file '/Users/Mr.xiao/Desktop/AndroidShopNC2014MoblieNew/androidShopNC2014Moblie/build.gradle' (/Users/Mr.xiao/.gradle/caches/2.10/scripts/build_3cyr7hzjurcc62ge3ixidshos/cp_proj).It is currently in use by another Gradle instance.Owner PID: unknownOur PID: 1412Owner Operation: unknownOur operation: Initialize cacheLock file: /Users/Mr.xiao/.gradle/caches/2.10/scripts/build_3cyr7hzjurcc62ge3ixidshos/cp_proj/cache.properties.lock
以上是错误提示。
解决的思路很简单只需要把cache.properties.lock文件删除了就可以了。当时我们删除的时候会被占用这时候需要进入任务管理器结束关于java的进程就行比如 java 的jdk 删除后重启让java jdk启动 启动Android Studio就能启动APK了。- 修改了Android项目的最小SDK版本之后出现很多stysle文件找不到
compileSdkVersion 23buildToolsVersion "23.0.3"defaultConfig {applicationId "net.mmloo2014.android"minSdkVersion 14targetSdkVersion 23
compileSdkVersion 是多少版本的
那么compile ‘com.android.support:appcompat-v7:23.2.1’ 就是啥版本的。
- finished with non-zero exit value 2
Error:Execution failed for task ':androidShopNC2014Moblie:transformClassesWithDexForDebug'.>com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/bin/java'' finished with non-zero exit value 2
这个错误在app的build.gradle里面添加下面这句就好了。
android { defaultConfig { multiDexEnabled true }}
- finished with non-zero exit value 1(导入依赖重复导致)
Error:Execution failed for task ':app:transformClassesWithDexForDebug'.> com.[Android](http://lib.csdn.net/base/15).build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'F:\Program Files (x86)\[Java](http://lib.csdn.net/base/17)\jdk1.8.0_31\bin\java.exe'' finished with non-zero exit value 1
- Error:Execution failed for task
Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'.> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: org/apache/http/ConnectionClosedException.class
2个库中存在相同的类,需要删除其中的一个就可以解决了。
- finished with non-zero exit value 1
rror:Execution failed for task ':app:transformClassesWithDexForDebug'.> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
buildToolsVersion版本太高,把buildTools版本降下来就好了
- 导入GitHub项目经常要build.gradle要很久
这个问题我的比较快捷的处理方式就是,修改项目的一些文件,先看下你本地的(我的是下面的版本)
classpath 'com.android.tools.build:gradle:2.2.1'
distributionUrl=https://services.gradle.org/distributions/gradle-2.14.1-all.zip
复制修改到项目对应的文件中就可以打开了,当然如果有些依赖或者插件那还是要等他下载完的。
- 将Eclipse项目导入到Android studio 中 很多点9图出现问题解决方法:
总结
第一部分主要是说了一些关于AS常用的一些快捷键/插件,gradle的配置,以及一些AS错误解决办法,下篇准备介绍下项目开始的实践内容,让你少走弯路。
- Android开发中,让你事半功倍的整理归档(一)
- Android开发中,让你事半功倍的整理归档(二)
- jquery经典200例 让你的Web开发事半功倍
- Reveal 一个让你开发事半功倍的工具
- 让你学习java事半功倍的帖子(节选)
- 可以让你事半功倍的工作经验
- 100+ jquery插件应用,让你的Web开发事半功倍_前端设计
- 大牛分享:那些让你“事半功倍”的移动开发技术
- Paris让你在内网渗透中事半功倍.
- CSS Framework,让你事半功倍
- CSS Framework,让你事半功倍
- css的框架 - CSS Framework,让你事半功倍
- 了解“用户记忆理论”让你的工作事半功倍
- 【腾讯TMQ】这样的测试过程管理让你事半功倍
- 这样的测试过程管理让你事半功倍
- 让Web开发事半功倍的10款HTML5工具
- (干货).NET开发丰富的公共类库助你事半功倍(供下载免费使用)
- [转] CSS Framework,让你事半功倍
- Mysql实验(二)
- SVN 2.向服务器提交数据
- centos 7 zookeeper 常操作命令
- QT---QString,int,char,QByteArray之间的转换
- 编译器之词法分析c
- Android开发中,让你事半功倍的整理归档(一)
- 如何转换js格式文件的编码
- 小希的迷宫
- UE4中使用自定义log
- 优雅使用Chrom之插件31款
- Android驱动开发【NDK模型】———NDK程序设计之产生头文件出现找不到appcompat-v7的错误解决办法
- 如何设置UITextField的leftView和rightView的inset
- 正则表达式中参数g、i、m的作用(share)
- FingerPrint Fuzzy Vault Matlab实践