Android Studio Gradle 多渠道自动打包,动态修改HostUrl,签名apk,混淆配置详解
- 格式:doc
- 大小:73.50 KB
- 文档页数:10
AndroidStudio配置国内镜像源(利⽤hosts)
之前我写过直接⽤国内镜像的IP地址端⼝进⾏配置国内镜像的,如下链接:
但是这种⽅法不⼀定在每台电脑上的每次配置都⾏得通,因此给出第⼆种⽅法:给系统⽂件 hosts 添加国内的镜像(虽然……可能……也不⼀定……⾏得通 ^- ^ ,博主我亲测是可以的)
⽅法步骤:
⼀、配置hosts
找到hosts⽂件,⽤记事本或notepad++打开⽂件:
在末尾加上如下映射,:
⼆、配置Android Studio
打开Android studio 的根⽬录(可以右键AS的快捷图标找到其根⽬录),进⼊bin⽂件夹,⽤记事本或notepad++打开studio.exe.vmoptions或studio64.exe.vmoptions
如果系统是32位的就修改studio.exe.vmoptions,如果是64位就修改studio64.exe.vmoptions;不清楚⾃⼰系统的话就两个都改了
添加以下数据:
.preferIPv4Stack=true
-Didea.updates.url=/android/studio/patches/updates.xml
-Didea.patches.url=/android/studio/patches/
如下图:
Android studio的Setting中的配置如下:
到此这篇关于Android Studio配置国内镜像源(利⽤hosts)的⽂章就介绍到这了,更多相关Android Studio国内镜像源内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。
AndroidStudio更改Gradle缓存⽬录所引发的各种奇葩问题AS运⽤gradle构建app项⽬,其中必然会缓存各种⽂件,如编译的各类class,依赖的各种jar包,那这个缓存⽂件放在哪⾥呢?默认位置:C:\Users(⽤户)\username\.gradle1不调整缓存⽬录也没多⼤关系,前提是你的C盘容量够⼤,因为这个缓存⽂件是随着时间的推移⽽逐渐增⼤的。
C盘是⼀个系统盘,我认为C盘就应该只⽤以放置操作系统;还有另⼀点是AS更新时下载的临时⽂件都放在这⾥C:\Users(⽤户)\username\AppData\Local\Temp1强迫症的我经常⼿贱去点了update sdk,经常就是2、3G,结果下载到⼀半的时候告诉我磁盘空间不⾜,这简直让我⽆法忍受,⼀咬⽛决定把缓存⽂件移到其它磁盘,况且下载缓存⽬录也⽆法更改。
未转移之前,我的.gradle⽂件夹⼤⼩如下图,惊⼈的达到了1G。
更改gradle的缓存⽬录在每个⼯程中都有这么⼀个⽂件夹⽬录gradle,点开其中的gradle-wrapper.properties可以看到右边中第⼀⾏等号右边的⼤写常量GRADLE_USER_HOME1这个就是gradle缓存的⽬录,配置与Java⼀样,新建⼀个环境变量,名字为GRADLE_USER_HOME,值就为其它盘中gradle要放置的⽂件⽬录,它会在这个⽬录下⾃动⽣成.gradle⽂件夹(如不存在)。
从下图中可以看到选择use defualt gradle⽤的环境变量设置的⽬录,这是推荐选项,还有第⼆个选择就是⾃⼰指定gradle放置的⽬录。
当完成了gradle缓存⽬录的设置后,我将C盘中的.gradle⽂件直接复制到了新的缓存⽬录中,然后引发了后续各种奇葩问题.项⽬⽆法编译,build error当更改缓存⽬录后,编译项⽬时AS报了如下的错误Error:Unable to load class'asLocalRepo601_3r3vayyz997q7cxsbexzcx3f1$_run_closure1$_closure2$_closure4$_closure5'.Possible causes for this unexpected error include:Gradle’s dependency cache may be corrupt (this sometimes occurs after a network connection timeout.)Re-download dependencies and sync project (requires network)The state of a Gradle build process (daemon) may be corrupt. Stopping all Gradle daemons may solve this problem.Stop Gradle build processes (requires restart)Your project may be using a third-party plugin which is not compatible with the other plugins in the project or the version of Gradle requested by the project.In the case of corrupt Gradle processes, you can also try closing the IDE and then killing all Java processes.从英⽂的意思上看,是说Gradle的依赖库或者守护进程被损坏了,我clean然后rebuild过项⽬,依然报这个错误,没办法只能上stackoverflow,解决⽅法就是简单粗暴的删除.gradle这个⽂件夹,然后让AS重新构建项⽬,重新下载依赖库。
android studio安装教程及其环境配置Android Studio 是Google官方推出的集成开发环境(IDE),用于开发Android应用程序。
它提供了多种功能,如代码编辑器、调试工具、性能监测器等,方便开发者进行Android应用程序的开发和调试。
本文将介绍Android Studio的安装教程及其环境配置。
首先,我们需要下载Android Studio的安装包。
可以在Google 官方网站上找到Android Studio的最新版本,并下载适用于操作系统的安装包。
目前Android Studio支持Windows、Mac和Linux三种操作系统。
下载完成后,双击安装包进行安装。
安装向导将引导您完成安装过程。
您可以选择安装路径和其他自定义选项。
建议选择默认选项,除非您具有特殊的需求。
安装完成后,启动Android Studio。
首次启动可能需要一些时间来初始化和更新组件。
请确保您的计算机已连接到互联网。
如果安装过程中遇到问题,请参考官方文档和支持论坛。
启动Android Studio后,开始配置环境。
首先,选择“Configure”选项,然后选择“SDK Manager”。
SDK Manager用于下载和管理Android SDK。
Android SDK包含开发Android 应用所需的工具和API。
在SDK Manager中,可以选择所需的Android SDK版本和其他支持库。
您可以根据项目的要求选择不同版本的SDK。
选择所需的选项后,点击“Apply”按钮进行下载和安装。
安装完成后,返回到Android Studio的主界面。
现在,可以开始开发Android应用程序了。
可以创建一个新项目或导入现有项目。
创建新项目时,需要提供一些基本信息,如项目名称、包名、存储位置等。
还可以选择所需的设备类型和最低Android版本。
然后,Android Studio将自动生成项目结构和初始代码。
安卓android手机修改host文件方法方法一Android手机是和Google帐号紧密联系的,很多时候Google帐号无法登录,导致Android市场无法使用。
在电脑上我们通过修改Hosts方法可以解决Google帐号的登录问题,在Android手机上也可以使用这个方法。
具体操作过程是:先通过各种方法让Android手机获取Root权限,之后运行Root Explorer管理器,进入可写状态,找到/system/etc/hosts的文件,将其权限修改为可写。
打开Terminal Emulator,输入su,进入root模式,输入vi /system/etc/hosts 命令,按i进入编辑模式,之后将用户电脑上的hosts文件内容也输入进去。
Android虚拟终端下当vi在编辑模式时,按下“确定”键(Trackball),再按下虚拟键盘上的“1”,就可以退出编辑模式了(CTRL+[),这个时候使用:wq 就可以保存退出了。
之后重启手机即可。
方法二电脑修改法注意:usb设置为调试模式1、手机必须先root,小米可以安卓开发版系统即可2、安卓 adb工具(android debug bridge)3、依次执行下面的命令1、adb root 获得root权限会自动启动server2、adb remount 设置/system为可读写;3、adb pull /system/etc/hosts 将手机的hosts文件复制到PC的C盘根目录4、PC 机上打开hosts文件,修改完成后,保存5、adb push hosts /system/etc/ 将PC机上hosts文件复制到手机4、验证是否修改成功。
android studiodefaultpublishconfig 用法Android Studio 中的 defaultPublishConfig 是一个在 Gradle 构建脚本中用于指定默认发布配置的属性。
在 Android 应用开发中,经常需要构建不同版本的 APK 或 AAB (Android App Bundle)以供发布到不同的平台或渠道。
这些不同的版本可能对应不同的配置,比如 debug、release、beta 等。
defaultPublishConfig 的主要作用是设定一个默认的发布配置,当没有明确指定要构建哪个配置时,Gradle 将使用这个默认配置来构建 APK 或 AAB。
这有助于简化构建过程,减少手动干预的需要。
在 android 部分的 build.gradle 文件中,你可以这样设置 defaultPublishConfig:gradleandroid {...publishing {publications {release(MavenPublication) {from components.release// 其他配置...}debug(MavenPublication) {from components.debug// 其他配置...}// 其他配置...}defaultPublishConfig "release" // 设置默认发布配置为 "release"}...}在这个例子中,defaultPublishConfig 被设置为 "release",这意味着如果没有明确指定要构建的配置,Gradle 将默认构建 release 版本的 APK 或 AAB。
使用 defaultPublishConfig 时需要注意,确保指定的默认配置在 publications 部分有相应的定义,否则构建过程将失败。
Gradle的缓存路径修改的四种⽅法(⼩结)⽅法⼀,修改gradle.properties⽂件,增加⼀句er.home=D\:\\Android\\.gradle但这种⽅法,需要每个项⽬⽂件都要改⼀遍,如果只是临时修改,可以采⽤这种⽅法,如果是针对所有项⽬的,不建议这种⽅法.⽅法⼆,在Android Studio中修改gradle⽤户⽬录,打开设置(快捷键Ctrl+alt+S),定位到Gradle菜单,作如下设置但是这个⽅法现在好像没⽤,不过可以试试,万⼀就可以了呢(⼿动滑稽).⽅法三,修改gradle启动脚本,进⼊gradle安装的bin⽬录,使⽤⽂本编辑器打开gradle.bat⽂件,在如图的位置添加以下语句set GRADLE_OPTS="er.home=D:\Android\.gradle"⽅法四:以上⼏种⽅法,都不是最理想的⽅法,下⾯推荐Windows环境变量设置gradle⽤户⽬录,通过环境变量的⽅式,gradle会读取环境变量,所有的项⽬都会⾃动修改过来,⾮常⽅便。
打开环境变量设置⽅法如图(win10下⽤快捷键win+Q呼出⼩娜,其他版本可以进控制⾯板查找到系统->⾼级系统设置)⼀针见⾎的设置⽅法在gradle的安装⽬录,编辑bin⽂件夹下的gradle⽂件,然后找到如下语句:# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script在这句话的下⾯加上如下这⼀句:GRADLE_OPTS=er.home=/yourpath/gradle/gradle_cache即设置GRADLE_OPTS这个变量即可.这种修改⽅法尤其适合需要⽤gradle脚本就⾏编译的环境中,本⽂就采⽤这种⽅法。
到此这篇关于Gradle的缓存路径修改的四种⽅法(⼩结)的⽂章就介绍到这了,更多相关Gradle 缓存路径修改内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。
Android studio安装配置常见问题及其解决方案Android studio 是目前android公司主推的一款开发工具,相比较以前eclipse,它自己内部就集成了SDK等,方便开发。
这几天杰瑞教育学员也尝试从官网下载了一个android studio进行开发,但是在安装以及配置过程中遇到了几个问题,接下来与大家分享一下:方法/步骤1.问题一在安装的时候最好是按照它原来的路径安装,不要修改路径。
我修改了路径后出现了一些问题,没有解决。
所以提醒大家,在安装的时候最好不要修改安装路径哦~2.问题二'tools.jar' seems to be not in Android Studio classpath.Please ensure JAVA_HOME points to JDK rather than JRE.在打开的过程中报出以上错误,tools包没有找到,解决方法是在设置环境变量中的JAVA HOME时需要注意,在最后需要以\结尾。
如图:3.问题三一直停留在fetching Android sdk compoment information界面4.出现该界面是一直在获得android sdk的信息。
解决方法:1)找到安装的Android Studio目录下的bin目录。
找到idea.properties 文件,用文本编辑器打开。
2)在idea.properties文件末尾添加一行:disable.android.first.run=true ,然后保存文件。
3)关闭Android Studio后重新启动,便可进入界面。
5.问题四Failed to fetch URL /android/repository/repository.xml,reason: Connection timed out: connect连接谷歌网络超时解决方法:打开SDK目录安装时默认地址为C:\Users\Administrator\AppData\Local\Android\sdk 。
【0004】Androidstudio使⽤【1】/?view=theme&id=563a1a7680b4acf11273ae94【2】⾸先第⼀步就是在你的module所在的⽬录复制⼀份,并粘贴然后重命名成为你需要的名字,⽐如我根据我的需要,我把我的testservice改成了testservice_interface了第⼆步,打开你的Android Studio -> Project,你就会看到你刚刚复制的module第三步,找到在Project下的setting.gradle,打开,加上你的刚刚复制好的⽂件名第四步,sync now,同步你的gradle,然后你刚复制的module名字字体就变⿊体了第五步,切换⾄Android视图,修改包名最后,修改你的应⽤名称,你想改什么就什么呗,在manifest下label那,你会找得到的。
最最最后⼀步,也是⾮常重要⼀步,修改你的应⽤id,不然你这个app会覆盖掉你原来的app哦你还会发现,其实应⽤的唯⼀标识是id,只要id不同,就是两个不同的app,也就是说你可以拥有两个名称⼀模⼀样的app安装在⼿机上,如果你喜欢的话----------------------------------------------------------------------------------------------------------------------【3】Android Studio中的同⼀个⼯程下复制⼀份module⽽不改变原来的demo?⾸先第⼀步就是在你的module所在的⽬录复制⼀份,并粘贴然后重命名成为你需要的名字,⽐如我根据我的需要,我把我的testservice改成了testservice_interface了第⼆步,打开你的 Studio -> Project,你就会看到你刚刚复制的module第三步,修改包名第四部,修改应⽤程序ID,在app⽬录下的build.gradle中,如果应⽤ID相同的话,怎么安装都是同⼀个应⽤程序最后,修改你的应⽤名称,进⼊strings.xml下修改app name,这样AndroidManifest.xml⾥引⽤的appname就⾃动更改了。
Android中的build.gradle⽂件深⼊讲解⼀、什么是Gradlegradle是⼀个项⽬构建⼯具,java开发中有两个⼤名⿍⿍的项⽬构建Maven,Ant,其中maven简单易控深受开发者喜爱。
项⽬构建⼯具是什么?能⼲吗?开发某些项⽬时,需要很多jar或者库的⽀持,还没开始开发就下载了n多个库,浪费了时间不说,这些库之间兼容性⼜⽆法保证。
删了?⽩下载了。
不删?⼜不兼容。
此时就需要使⽤项⽬构建⼯具,简单的说就是⼀个可以根据简单的配置⽂件⾃动去下载相应包/库的软件。
⾃动的还很简单,不⽤岂不亏了。
多个项⽬构建⼯具各有特点,但是核⼼思想⼀样。
简单的说,Gradle是⼀个构建⼯具,它是⽤来帮助我们构建app的,构建包括编译、打包等过程。
我们可以为Gradle指定构建规则,然后它就会根据我们的“命令”⾃动为我们构建app。
Android Studio中默认就使⽤Gradle来完成应⽤的构建。
有些同学可能会有疑问:”我⽤AS不记得给Gradle指定过什么构建规则呀,最后不还是能搞出来个apk。
“ 实际上,app的构建过程是⼤同⼩异的,有⼀些过程是”通⽤“的,也就是每个app的构建都要经历⼀些公共步骤。
因此,在我们在创建⼯程时,Android Studio ⾃动帮我们⽣成了⼀些通⽤构建规则,很多时候我们甚⾄完全不⽤修改这些规则就能完成我们app的构建。
有些时候,我们会有⼀些个性化的构建需求,⽐如我们引⼊了第三⽅库,或者我们想要在通⽤构建过程中做⼀些其他的事情,这时我们就要⾃⼰在系统默认构建规则上做⼀些修改。
这时候我们就要⾃⼰向Gradle”下命令“了,这时候我们就需要⽤Gradle 能听懂的话了,也就是Groovy。
Groovy是⼀种基于JVM的动态语⾔,关于它的具体介绍,感兴趣的同学可以⽂末参考”延伸阅读“部分给出的链接。
我们在开头处提到“Gradle是⼀种构建⼯具”。
实际上,当我们想要更灵活的构建过程时,Gradle就成为了⼀个编程框架——我们可以通过编程让构建过程按我们的意愿进⾏。
Android Studio Gradle 多渠道自动打包,动态修改HostUrl,签名apk,混淆配置详解最近遇到项目从Eclispe迁移到Android studio,以前的Ant自动打包脚本已经兼容不好了,所以用了Gradle实现打渠道包,切换环境等,Ant打包脚本[html] view plain copy print?在CODE上查看代码片派生到我的代码片<target name="-release-sign" if="has.keystore"><!-- only create apk if *not* a library project --><do-only-if-not-library elseText="Library project: do not create apk..."><sequential><property name="out.unaligned.file"location="${out.absolute.dir}/${}-release-unaligned.apk"/><!-- Signs the APK --><echo level="info">Signing final apk with your apk signer server...</echo><taskdef resource="com/myapk/ant/task/defaults.properties" classpath="${signer.jar}"/><apk-signerserver="/packservice/sign<pre name="code" class="html" style="font-size: 14px; line-height: 26px;">[html] view plain copy print?在CODE上查看代码片派生到我的代码片</pre><p><pre name="code" class="html">" apk="${out.packaged.file}" dest="${out.unaligned.file}" prodkey="${singer.prodkey}" verbose="true" timeout="500" retries="5" /> <!-- Zip aligns the APK --> <zipalign-helper in.package="${out.unaligned.file}" out.package="${out.final.file}"/> <echo level="info">Release Package: ${out.final.file}</echo> </sequential> </do-only-if-not-library> <record-build-info/> </target>Gradle加入配置,签名文件,配置打包生成apk文件名称规则,配置url,配置渠道等配置gradleandroid {}配置一些关于android的基本配置1配置依赖关系[java] view plain copy print?在CODE上查看代码片派生到我的代码片dependencies {compile fileTree(include: ['*.jar'], dir: 'libs')testCompile 'junit:junit:4.12'compile 'com.android.support:appcompat-v7:23.2.1'compile 'com.android.support:support-v4:23.2.1'compile 'com.android.support:recyclerview-v7:23.2.1'......}如果想兼容v4[java] view plain copy print?在CODE上查看代码片派生到我的代码片compile ('com.android.support:recyclerview-v7:22.2.0'){ exclude module: 'support-v4' }3配置打包方式signingConfigs {[java] view plain copy print?在CODE上查看代码片派生到我的代码片release {keyAlias props['KEY_ALIAS']keyPassword props['KEY_PASSWORD']storeFile file(props['KEYSTORE_FILE'])storePassword props['KEYSTORE_PASSWORD']}debug {storeFile file('../../debug.keystore')storePassword 'you pass'keyAlias 'you key'keyPassword 'you pass'}}加载签名配置文件[java] view plain copy print?在CODE上查看代码片派生到我的代码片Properties props = new Properties()props.load(new FileInputStream(file("signing.properties")))签名文件signing.properties 配置如下:[java] view plain copy print?在CODE上查看代码片派生到我的代码片KEY_ALIAS = xxxxKEY_PASSWORD = 你的密码KEYSTORE_FILE = ../../nide.keystroe (相对路径)KEYSTORE_PASSWORD =密码签名你自己可生成,可以直接用eclispe生成的。
三配置环境定义线上环境Url[java] view plain copy print?在CODE上查看代码片派生到我的代码片def host_url = "https://";四配置混淆开启混淆开关:[java] view plain copy print?在CODE上查看代码片派生到我的代码片minifyEnabled true开启过滤非引用资源打包:[java] view plain copy print?在CODE上查看代码片派生到我的代码片shrinkResources true打开log输出:[java] view plain copy print?在CODE上查看代码片派生到我的代码片buildConfigField "boolean", "LOG_DEBUG", "true"定义打包方式:[java] view plain copy print?在CODE上查看代码片派生到我的代码片buildTypes {release {minifyEnabled trueshrinkResources truebuildConfigField "boolean", "LOG_DEBUG", "false"proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'signingConfig signingConfigs.release}debug {minifyEnabled trueshrinkResources truebuildConfigField "boolean", "LOG_DEBUG", "true"signingConfig signingConfigs.debugproguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' }}编译项目后会生成buildConfig文件[java] view plain copy print?在CODE上查看代码片派生到我的代码片public final class BuildConfig {public static final boolean DEBUG = Boolean.parseBoolean("true");// app idpublic static final String APPLICATION_ID = "com.skay.test";public static final String BUILD_TYPE = "debug";// 渠道public static final String FLA VOR = "dev";// 版本public static final int VERSION_CODE = 1;public static final String VERSION_NAME = "1.0";// Fields from the variantpublic static final String APP_ENV = "dev ";// hostpublic static final String HOST_URL = " /";// Fields from build type: debugpublic static final boolean LOG_DEBUG = true;}代码中可以用上面的变量做一些判断。