android 模块不编译错误,Android编译出错记录

有个项目在某台电脑中运行的好好的,Android Studio版本是4.1.2。结果换台电脑就报各种莫名其妙的错误。

控制台提示:

What went wrong:

Execution failed for task ':app:stripOppoDebugDebugSymbols'.

Specified NDK version [1] does not have enough precision. Use major.minor.micro in version.

说的是指定的NDK版本精度不够,要使用 major.minor.micro 这种格式的。这就纳闷了,我的项目也没使用NDK呀,也没指定NDK呀,怎么突然来这么个错误呢?

网上查询了一番,无果。通过网上只言片语及加上自己的身经百战,我猜想是 gradle版本和gradle插件版本太高了。

查看下这个两者的版本号:

distributionUrl=https://services.gradle.org/distributions/gradle-6.5-all.zip

classpath "com.android.tools.build:gradle:4.1.1"

嗯,那就先降低版本吧,改成 gradle-6.1.1, plugin gradle 4.0.0,试下:

distributionUrl=https://services.gradle.org/distributions/gradle-6.1.1-all.zip

classpath "com.android.tools.build:gradle:4.0.0"

嗯,有收获,提示大同小异,但提示信息有个明显变化,之前是说 NDK version[1],现在是给出了具体的版本号 version 21.0.6113669,

Execution failed for task ':app:stripOppoDebugDebugSymbols'.

No version of NDK matched the requested version 21.0.6113669. Versions available locally: 1

说明这个思路是对的。然后按这个再去搜索下。

果然,解决方案多了起来,但都是说加上ndkVersion版本和下载对应的ndk,提供的方案是这样的:

android {

ndkVersion "x.x.x"

}

然后下载对应的NDK,File->Settings->System Settings->Android SDK,

勾选Show Package Details,然后选择对应的。

或者:

File->Project Stucture->SDK Location->在Android NDK location中点击Download链接。

我猜想,如果按网上的,加上这么一行,然后下载对应的NDK应该可以编译通过。但是!一个NDK相关下载至少要1G多,更何况我的项目千真万确没使用NDK呀。

尝试看看其他的方法。网上提供了一个重要的信息,说的是Android Studio升级到3.6.0之后就出现问题了,那就应该看看这个版本对于编译方面有什么改动。来到官网,下面这个链接:

https://developer.android.google.cn/studio/releases/gradle-plugin?hl=zh-cn#3-6-0

里边它这样说道:

默认 NDK 版本

现在,如果您下载了多个版本的 NDK,Android Gradle 插件会选择一个默认版本来编译源代码文件。以前,该插件选择的是最新下载的 NDK 版本。使用模块的 build.gradle 文件中的 android.ndkVersion 属性可替换插件选择的默认版本

这个意思是说,可以通过一个配置选项来替换ndk的默认版本。嗯,这是一个变动,但不能确定什么。

还可以看到另一个重要的信息,如下:

新的默认打包工具

在构建应用的调试版本时,该插件会使用一个新的打包工具 zipflinger 来构建 APK。这一新工具应该能够提高构建速度。如果新的打包工具无法正常运行,请报告错误。您可以通过在 gradle.properties 文件中添加以下代码来恢复使用旧的打包工具:

android.useNewApkCreator=false

哦,用了新的打包工具来构建apk,可能会存在错误,如果无法正常运行,可以尝试使用关闭这个选项,好,在 gradle.properties 文件中增加下载一行:

android.useNewApkCreator=false

尝试编译下,OK了。如果你这样尝试不行,摊手。反正我顺利编译成功。

更新---------------2021/02/11----------

其中一台电脑的Android Studio版本是4.1.1,然后我编译项目,没有android.useNewApkCreator=false 这么一句,但是编译过了。然后,我把Android Studio升级到4.1.2,同样去掉这么一句,但是!却编译成功了。

另外,同样是Android Studio 4.1.2版本,但是我注意到有个小细节不一样。底部Git版本控制中,有个版本有local change,有个版本没有;没有的那个版本在左侧有个新的面板 Commit,其中有 local change。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值