AndroidGradle

Summary: Author: 张亚飞 | 阅读时间: 4 minute read | Published: 2016-05-26
Filed under Categories: LinuxTags: Note,

使用Gradle管理你的Android Studio工程


Android Studio 更新 gradle


手动下载 gradle

  1. [Use local gradle distribution] 使用自定义 gradle 插件路径 https://services.gradle.org/distributions/gradle-2.14-all.zip 解压并复制到 E:\Program\Android\android-studio\gradle\gradle-2.14 下 修改 android-studio gradle 目录变量,默认为空,修改为 E:/Program/Android/android-studio/gradle/gradle-2.14
  1. [Use default gradle wrapper(recommend)] 模拟 gradle 自动下载解压方式 手动下载 gradle-all

https://downloads.gradle.org/distributions/gradle-2.14-all.zip

进入目录 C:\Users\yafei.gradle\wrapper\dists\gradle-2.14-all\t7wfomcrmv8dmyii9c9waem8

删除 gradle-2.14-all.zip.ok 保留 gradle-2.14-all.zip.lck

复制刚下载的 https://downloads.gradle.org/distributions/gradle-2.14-all.zip 到此目录,重启 android-studio


ios 导入 Android Studio 项目,一直卡在 app:_debugCompile 处,如何解决?

按以上步骤手动下载 gradle-2.14-all.zip 并重启 Android Studio 也没用, 于是关闭 Android Studio 代理配置,

使用 ./gradlew –info –debug 命令查看详细调试信息

./gradlew --info --debug 

发现最后还是停留在连接 127.0.0.1:1080 上,查看 gradle.properties 发现还是有先前配置的 代理,于是注释掉并重新执行以上命令,没有出现 127.0.0.1:1080 等信息,但是还是长时间停留在 app:_debugCompile

因为 ios 设置 shadowsocks 代理的时候,没有配置本地电脑代理端口 1080,于是使用 命令 查看当前电脑的 1080端口,发现 1080 端口是打开的,确定是 shadowsocks 自动配置 1080 端口为本地代理 .但是手动关闭 shadowsocks 客户端,执行如下命令还是打开的,可以重启电脑测试不打开 shadowsocks 发现此端口没有打开了

MacPro:ndk-bundle coam$ telnet 127.0.0.1 1080
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.

关闭 shadowsocks 关闭代理配置,重新执行 ./gradlew –info –debug 发现以上问题很快跳过,不解,暂时记录一下

分析可能是在 ios 下 shadowsocks 开启的是 sock 代理,而不是 Android Studio 默认使用的 http 代理,下面记录一下 在 ios 下将 shadowSocks 代理转化为 http 代理 的文章以备不时之需


任务task的执行

通常会有以下任务:

assemble The task to assemble the output(s) of the project(输出一个项目文件,android就是打包apk)

check The task to run all the checks.(运行检查,检查程序的错误,语法,等等)

build This task does both assemble and check (执行assemble和check)

clean This task cleans the output of the project(清理项目输出文件)

其它命令参考:

./gradlew build
./gradlew assemble
./gradlew assembleInnderDebug

查看其他所有依赖关系

Don’t use dynamic versions for your dependencies

$ ./gradlew :app:dependencies
$ ./gradlew androidDependencies
$ ./gradlew buildscriptDependencies

使用 gradlew compileDebug –stacktrace 命令调试查看输出 参考 Android Studio and Gradle build error


Android Studio build.gradle 插件依赖更新自动检查

  • 添加以下部分到项目依赖
apply plugin: 'com.github.ben-manes.versions'

buildscript {
  repositories {
    jcenter()
  }

  dependencies {
    classpath 'com.github.ben-manes:gradle-versions-plugin:0.12.0'
    // classpath 'org.codeha.us.groovy:groovy-backports-compat23:2.3.5' // uncomment if you're using Gradle 1.x
  }
}
  • 执行检查
gradlew dependencyUpdates -Drevision=release -DoutputFormatter=json,xml

Android自动清理无用资源工具

buildscript {
  repositories {
    mavenCentral()
  }
  dependencies {
    classpath 'com.android.tools.build:gradle:0.12.+'
    classpath 'com.droidtitan:lint-cleaner-plugin:0.3.0'
  }
}

apply plugin: 'android'
apply plugin: 'com.droidtitan.lintcleaner'
  • 执行命令清理
gradle lintClean

Android App Proguard …

Refresh

常见问题

编译项目时,提示错误

Execution failed for task ':assetManager:processDebugResources'.
 > com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'G:\Program Files\Android\sdk\build-tools\22.0.1\aapt.exe'' finished with non-zero exit value 1

执行 输出编译详情

./gradlew assembleDebug --info
./gradlew assembleRelease --info

在Win8下,若需要在命令行下使用gradlw命令,添加到系统环境变量 PATH 下 G:\Program Files\Android\Android Studio\gradle\gradle-2.4\bin

使用命令行编译打包android-gradle项目

1. 执行 ./gradlew -v 来查看下项目所用的Gradle版本
2. 接着执行 ./gradlew clean
3. 最后执行 ./gradlew build

紧接着在 9GAG/app/build/outputs/apk 目录下会看到类似于app-debug-unaligned.apk, app-release-unsigned.apk等,看名字应该能理解意思,unaligned代表没有进行zip优化的,unsigned代表没有签名的.然后就可以直接安装apk查看运行效果了.


编译项目时,提示错误

Error:Execution failed for task ':assetManager:dexDebug'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'G:\Program Files\Java\jdk8\bin\java.exe'' finished with non-zero exit value 2

肯定是哪里依赖有冲突重复的包了,将依赖注释掉即可

Comments

Cor-Ethan, the beverage → www.iirii.com