开发工具总结(4)之Android Studio3.X填坑指南

序言

6098829-fbe2d8c1eabff2ee.png
Android Studio 3.0

上篇讲了: 全面总结Android Studio2.X的填坑指南

这篇讲一下AS3.X的坑。。


作为这个世界上走在最前沿的生物“猿”,怎么能对新事物一无所知呢,10月26日,随着Android 8.1 Oreo的预览版发布,Android Studio3.0正式版也发布了,作为Android开发的猿们我们应该早就知道谷歌在今年5月的开发者大会上就说了要支持Kotlin语言,所以这次更新一个比较大的点就在于支持Kotlin语言了,下面就跟着LZ的脚步来探索一下AS3.0吧
相信很多人很早就体验过谷歌爸爸放出来的体验版本了,虽然说正式版已经出了,但是很多人也不敢轻易贸然的更新,因为怕会掉进坑里出不来(真是一只胆小的猿,鉴定完毕)。


安装

如果你从Android Studio内部点击更新的话,会跳转到Android的官网,没有梯子的同学可以点击 谷歌官方Android 开发中文网 下载更新:

网址: https://developer.android.google.cn/studio/index.html

6098829-cef73e2dd30aa8ea.png
不同平台版本

如何加快下载速度? ----- 设置代理(必备操作)

貌似从2017年的中旬开始,AS就不能搜索依赖库了,后来gradle插件也不能搜索了,只有通过设置代理,或者翻墙(这个有风险,不推荐,怕查水表)的方式去解决问题。这里讲一下代理如何操作:

代理地址:mirrors.neusoft.edu.cn
端口号:80

打开设置页面 --> Appearance & Behavior --> System Settings --> HTTP Proxy,找到Manual proxy configuration,选择HTTP
,填入代理地址和端口号,点击ok
如图所示:

6098829-808c67049090e8d0.png

操作方式2:
在搜索插件页面,同样可以设置代理:


6098829-59b217ca21da3145.png

安装过程中遇到的问题

1、启动项目报错: Finished with error: Gradle task assembleDebug failed with exit code 1

解决:gradle.properties文件里面末尾以下配置,然后重新build一下:

android.useAndroidX=true
android.enableJetifier=true

2、Gradle Sync failed:
Gradle sync failed: Cause:
    com.android.build.gradle.api.BaseVariant.getOutputs()Ljava/util/List;
    Consult IDE log for more details (Help | Show Log) (8s 123ms)

其实一开始不是这个错,最开始是一个redownload的一个错,后来LZ把2.3版本的给删了,缓存给清除了,然后就变成这个错了。既然有错,那就解决呗,顺手百度了一个,下面看看stackoverflow的解决方案:

6098829-f77eaa6f874bbbba.png
同步失败问题在stackflow上的解决

这个方法确实也适用于我,把ButterKnife降级之后就OK了。如果有其他更好的解决方法,欢迎私信我。

“一个问题的解决是为了更好的迎接下一个问题的出现”——鲁迅

解决方案1:把项目中依赖的ButterKnife降级到8.4.0

解决方案2:把gradle plugin版本降低至2.3.3 重新编译下就可以了


3、Unable to resolve dependency for:
6098829-41850705807fdc02
出现了Unable to resolve dependency for:这个问题

第一眼看这个错的时候我以为我setting.gradle中没有依赖appCommon,看完之后明明确实依赖了,而且这是一个老项目,在AS2.3版本的时候很正常,然后我就知道这又是一个坑,无奈的又去上了一把Internet,然后试过网上说的在buildTypes中加入preview节点,然而并没有什么卵用,查了半天还是没有找到解决的方法,后来看着这段报错信息的时候,我看到了signingConfigs,我想到gradle中好像有这么个节点,抱着试一试的态度我删了那个节点,然后,卧槽卧槽卧槽,可以成功编译了,这是不是有一种躺着过坑的赶脚。如果有其他更好的解决方法,欢迎私信我,有偿给发红包

解决方案: 把项目中的signingConfigs节点删除掉就好了,如果你担心多渠道打包的事情,那么就用打包工具吧。


4、app:transformDexArchiveWithExterLibsDexMergeForDebug
6098829-fb9985a836479537
app:transformDexArchiveWithExterLibsDexMergeForDebug

解决方案:将电脑中的.gradle目录删除掉(清除掉gradle缓存)重新build


5、gradle打包,自定义apk名称代码报错(Cannot set the value of read-only property 'outputFile' )
Error:(56, 0) 
  Cannot set the value of read-only property 'outputFile' for
  ApkVariantOutputImpl_Decorated{apkData=Main{type=MAIN, fullName=debug, filters=[]}} 
  of type com.android.build.gradle.internal.api.ApkVariantOutputImpl.

解决方案: 修改文件名代码请这样写:(必须配置了productFlavors节点才可以这样写)

android.applicationVariants.all { variant ->
    variant.outputs.all {
         outputFileName = "driver_${variant.productFlavors[0].name}_v${variant.versionName}.apk"
    }
}

如果这样不行的话,请按下面这个写,这个是通用的:

android.applicationVariants.all { variant ->
    variant.outputs.all {
         outputFileName = rootProject.getName()
                + "-" + buildType.name
                + "-" + releaseTime()
                + "-v" + defaultConfig.versionName
                + "-" + defaultConfig.versionCode
                + ".apk";
    }
}

=================================================

【附:】Android Studio3.0之前自定义输出apk名字的方式:
android {
    android.applicationVariants.all { variant ->
        variant.outputs.each { output ->
            output.outputFile = new File(output.outputFile.parent, rootProject.getName()
                    + "-" + buildType.name
                    + "-" + releaseTime()
                    + "-v" + defaultConfig.versionName
                    + "-" + defaultConfig.versionCode
                    + ".apk");
        }
    }
}

6、AAPT2 编译报错 AAPT2 error
Error:java.util.concurrent.ExecutionException: 
  com.android.tools.aapt2.Aapt2Exception: 
  AAPT2 error: check logs for details

解决方案:在gradle.properties中关闭APPT2 编译,加上下面这行代码就好了:

android.enableAapt2=false

注:如果是eclipse转到as上的项目,可能没有gradle.properties文件,请在项目根目录中手动创建。


7、apt插件问题
Error:Cannot choose between the following configurations of project :mylibrary:)
Error:Cannot choose between the following configurations of project :mylibrary:
- debugApiElements
- debugRuntimeElements
- releaseApiElements
- releaseRuntimeElements
 All of them match the consumer attributes:

解决方案:

  • 1.在project的build.gradle中删除
    classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
  • 2.在module的build.gradle中删除
    apply plugin: 'android-apt'
  • 3.将module的build.gradle文件中的dependency的apt 'com.jakewharton:butterknife-compiler:8.1.0'
    改为 annotationProcessor 'com.jakewharton:butterknife-compiler:8.1.0'

8、Execution failed for task ':app:preDebugAndroidTestBuild
Error:Execution failed for task ':app:preDebugAndroidTestBuild'.
Conflict with dependency 'com.android.support:support-annotations' in project ':app'. 
Resolved versions for app (26.1.0) and test app (27.1.1) differ. See 
https://d.android.com/r/tools/test-apk-dependency-conflicts.html for details.

原因:
发生这种类型的错误,原因是当我们修改了.build中的compileSdkVersion,产生所依赖的dependency与当前版本不一致导致的。

解决方案:点击 Build->Rebuid Project 菜单,重新编译一下项目,就OK了,如果还不行,先点击 Build->Clean Project 菜单,然后再点击 Build->Rebuid Project 菜单。


9、Error:Execution failed for task ':react-native-update:compileDebugNdk'.
Error: Flag android.useDeprecatedNdk is no longer supported and will be removed in the next version of    
Android Studio. Please switch to a supported build system.
Consider using CMake or ndk-build integration. For more information, go to:
[https://d.android.com/r/studio-ui/add-native-code.html#ndkCompile](https://link.jianshu.com?
t=https%3A%2F%2Fd.android.com%2Fr%2Fstudio-ui%2Fadd-native-code.html%23ndkCompile)
To get started, you can use the sample ndk-build script the Android
plugin generated for you at:
D:\react-native\yiguan_rn_demo\node_modules\react-native-update\android\build\intermediates\ndk\debug\Android.mk
Alternatively, you can use the experimental plugin:
[https://developer.android.com/r/tools/experimental-plugin.html](https://link.jianshu.com? 
t=https%3A%2F%2Fdeveloper.android.com%2Fr%2Ftools%2Fexperimental-plugin.html)
To continue using the deprecated NDK compile for another 60 days, set
android.deprecatedNdkCompileLease=1521518279826 in gradle.properties

解决方案:在gradle.properties文件,把android.useDeprecatedNdk去掉,换成android.deprecatedNdkCompileLease=1521518279826 (后面这个数字按错误日志里的填)


10、Error:Resource shrinker cannot be used for libraries.
Error:All flavors must now belong to a named flavor dimension. Learn more at https://d.android.com/r/tools/flavorDimensions-missing-error-message.html

错误提示如下图所示:


6098829-1d6c464147033c5b.png

其实这个两个问题:

Error:Resource shrinker cannot be used for libraries.原因是library中使用了混淆,并移除了无用的资源文件,解决办法:把该library中的shrinkResources字段移除就可以了,如下图所示:

6098829-d062741b0a484627.png

Error:All flavors must now belong to a named flavor dimension.原因是使用了productFlavors分包,解决方法:在build.gradle中的defaultConfig中添加一个flavorDimensions "XXX"就可以了,后面的XXX一般是跟你的versionCode相同,入下图所示:

6098829-8a9fe8470b151cc5.png
11、Error:Execution failed for task compileReleaseRenderscript llvm-rs-cc is missing

错误的原因是在你的module的build.gradlebuildToolsVersiontargetSdkVersion 这几个的sdk版本设置太低了。

【解决】将sdk版本改为android 6.0后,下载和使用高版本的sdk。


本文转自 [Android Studio3.0更新之路(遇坑必入)],另外也加入了一些自己遇到的坑写在了里面。(https://mp.weixin.qq.com/s/VzMHjmKcI0hOHYrWK3Eqrw)
参考文章:https://www.jianshu.com/p/15afb8234d19


最后,推荐一本书给大家看看,希望对大家有帮助。
6098829-ecb76e4edd2b24ec.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Android Studio 2020.3.1是一款用于开发Android应用程序的集成开发环境(IDE)。如果您想要下载Android Studio 2020.3.1,可以按照以下步骤进行操作: 1. 首先,打开您的浏览器,并搜索"Android Studio官方网站"。 2. 在搜索结果中找到并点击Android Studio官方网站的链接,这将带您进入该网站。 3. 在网站的首页上,您将看到一个"Download"(下载)或类似的选项。点击这个选项。 4. 接下来,您可能会看到一个带有多个选项的页面。请确保选择Android Studio 2020.3.1版本。 5. 在选择了正确版本后,您将看到一个下载按钮。点击该按钮以开始下载Android Studio 2020.3.1。 6. 根据您的网络速度,下载可能需要一些时间。请耐心等待直到下载完成。 7. 下载完成后,双击下载的安装文件以开始安装Android Studio 2020.3.1。 8. 跟随安装程序的指示完成安装过程。您可能需要选择安装的组件和设置一些首选项。 9. 安装完成后,您可以在计算机上找到Android Studio的图标。点击该图标以启动Android Studio 2020.3.1。 10. 第一次启动Android Studio时,可能需要一些时间来初始化和配置。 11. 一旦Android Studio成功启动,您就可以开始使用它来开发和调试Android应用程序了。记得及时更新Android Studio以获取最新的功能和修复程序。 总之,下载Android Studio 2020.3.1非常简单。只需要访问官方网站,选择正确的版本,并按照安装程序的指示进行操作即可开始使用这个功能强大的开发工具

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AWeiLoveAndroid

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值