旧项目Android Studio 编译适配-NDK issue

问题点记录

旧的项目 在Android Studio新版本编译中遇到以下问题。 流水式总结记录一下

NDK getPlatformVersion -> NULL

编译一开始 遇见的问题log如下

Caused by: java.lang.NullPointerExceptionat com.google.common.base.Preconditions.checkNotNull(Preconditions.java:877)at com.android.build.gradle.internal.ndk.NdkHandler.getPlatformVersion(NdkHandler.java:167)at com.android.build.gradle.internal.ndk.NdkHandler.supports64Bits(NdkHandler.java:340)at com.android.build.gradle.internal.ndk.NdkHandler.getSupportedAbis(NdkHandler.java:412)at com.android.build.gradle.tasks.ExternalNativeJsonGenerator.create(ExternalNativeJsonGenerator.java:626)at com.android.build.gradle.internal.TaskManager.createExternalNativeBuildJsonGenerators(TaskManager.java:1552)at com.android.build.gradle.internal.ApplicationTaskManager.createTasksForVariantScope(ApplicationTaskManager.java:166)at com.android.build.gradle.internal.VariantManager.createTasksForVariantData(VariantManager.java:491)at com.android.build.gradle.internal.VariantManager.createAndroidTasks(VariantManager.java:365)

解决方案 1

local.properties 标明具体的ndk版本

## This file must *NOT* be checked into Version Control Systems,
# as it contains information specific to your local configuration.
#
# Location of the SDK. This is only used by Gradle.
# For customization when using a Version Control System, please read the
# header note.
#Tue Nov 30 18:08:21 CST 2021
sdk.dir=C\:\\Android\\sdk
ndk.dir=C\:\\Android\\sdk\\ndk\\21.4.7075529

Invalid revision cmake 3.18.1

继续编译 遇到如下问题

Caused by: java.lang.NumberFormatException: Invalid revision: 3.18.1-g262b901-dirtyat com.android.repository.Revision.parseRevision(Revision.java:133)at com.android.repository.Revision.parseRevision(Revision.java:155)at com.android.build.gradle.external.cmake.CmakeUtils.getVersion(CmakeUtils.java:51)at com.android.build.gradle.tasks.ExternalNativeJsonGenerator.createCmakeExternalNativeJsonGenerator(ExternalNativeJsonGenerator.java:867)at com.android.build.gradle.tasks.ExternalNativeJsonGenerator.create(ExternalNativeJsonGenerator.java:794)at com.android.build.gradle.internal.TaskManager.createExternalNativeBuildJsonGenerators(TaskManager.java:1711)at com.android.build.gradle.internal.LibraryTaskManager.lambda$createTasksForVariantScope$11(LibraryTaskManager.java:248)at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:81)at com.android.build.gradle.internal.LibraryTaskManager.createTasksForVariantScope(LibraryTaskManager.java:243)at com.android.build.gradle.internal.VariantManager.createTasksForVariantData(VariantManager.java:530)at com.android.build.gradle.internal.VariantManager.lambda$createAndroidTasks$1(VariantManager.java:352)at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:81)at com.android.build.gradle.internal.VariantManager.createAndroidTasks(VariantManager.java:348)at com.android.build.gradle.BasePlugin.lambda$createAndroidTasks$6(BasePlugin.java:751)at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:81)at com.android.build.gradle.BasePlugin.createAndroidTasks(BasePlugin.java:746)at com.android.build.gradle.BasePlugin.lambda$null$4(BasePlugin.java:652)at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:81)at com.android.build.gradle.BasePlugin.lambda$createTasks$5(BasePlugin.java:648)at org.gradle.internal.event.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch.java:91)at org.gradle.internal.event.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch.java:80)at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:42)at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:230)at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:149)at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:58)at org.gradle.internal.event.BroadcastDispatch$CompositeDispatch.dispatch(BroadcastDispatch.java:324)at org.gradle.internal.event.BroadcastDispatch$CompositeDispatch.dispatch(BroadcastDispatch.java:234)at org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:140)at org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:37)at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)at com.sun.proxy.$Proxy31.afterEvaluate(Unknown Source)at org.gradle.configuration.project.LifecycleProjectEvaluator.notifyAfterEvaluate(LifecycleProjectEvaluator.java:76)... 82 more

解决方案 2

通过sdk manager 将Cmake  3.18.1 卸载

CMAKE_MAKE_PROGRAM is not set

CMake Error: CMake was unable to find a build program corresponding to "Ninja".  CMAKE_MAKE_PROGRAM is not set.  You probably need to select a different build tool.

解决方案 3

升级gradle版本 不低于3.3.0

buildscript {repositories {google()jcenter()mavenCentral()}dependencies {classpath 'com.android.tools.build:gradle:3.3.0'//classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.0'// NOTE: Do not place your application dependencies here; they belong// in the individual module build.gradle files}
}

总结

遇到这种问题
如果项目没有标明使用的Android Studio版本
只能认倒霉。逐一排查

Android Studio 编译适配-NDK issue 解决相关推荐

  1. 我的Android进阶之旅------解决Android Studio编译后安装apk报错:The APK file does not exist on disk...

    1.错误描述 今天用Android Studio编译应用后安装APK的时候,报错了,错误如下所示: The APK file build\outputs\apk\OYP_2.3.4_I2Base_64 ...

  2. Android Studio 编译异常Could not execute build using Gradle installation解决办法

    Android Studio 编译异常Could not execute build using Gradle installation解决办法 参考文章: (1)Android Studio 编译异 ...

  3. 解决Android Studio编译后安装apk报错:The APK file does not exist on disk

    1.错误描述 今天用Android Studio编译应用后安装APK的时候,报错了,错误如下所示: The APK file build\outputs\apk\OYP_2.3.4_I2Base_64 ...

  4. android studio真机测试不生成apk,Android应用开发Android Studio编译出来的APK无法安装如何解决?...

    本文将带你了解Android应用开发Android Studio编译出来的APK无法安装如何解决?,希望本文对大家学Android有所帮助. Android Studio编译出来的APK无法安装如何解 ...

  5. android 编译报错 xm*,解决Android Studio编译后安装apk报错:The APK file does not exist on disk...

    版权声明:本文为[欧阳鹏]原创文章,欢迎转载,转载请注明出处! [http://blog.csdn.net/ouyang_peng] 1.错误描述 今天用Android Studio编译应用后安装AP ...

  6. Android studio编译日志输出中文出现乱码 (如apk为中文命名时候)解决

    Android studio编译日志输出中文出现乱码 (如apk为中文命名时候)解决 遇到乱码问题导致编译后 apk安装文件出错等 使用如下方法解决: 没有则点击**"create" ...

  7. Android Studio 编译时报错乱码的解决方法

    前言 android studio 编译时报错 部分文字乱码 乱码效果如下 解决方法 设置android studio的编码格式 找到这个 打开文件 添加一行输入 -Dfile.encoding=UT ...

  8. 在android studio中配置ndk开发环境

    环境:android studio 1.5 android-ndk-r10b 1.下载android-ndk-r10b,解压. 2.android studio创建新项目, 配置ndk环境 打开fil ...

  9. android studio日志不打印,Mac 下 Android Studio 不打印日志的解决办法

    Mac 下 Android Studio 不打印日志的解决办法 Mac 下 Android Studio 不打印日志的解决办法 前言: 在 Mac 下使用 Android Studio 时常会遇到 A ...

最新文章

  1. Virtual Earth API 在指定zoomLevel添加自定义图层
  2. 有感于“政府傍大款”----谈中小企业融资问题
  3. Python小游戏之 - 飞机大战 !
  4. js parseInt()与Number()区别
  5. php copy 文件夹,php删除与复制文件夹及其文件夹下所有文件的实现代码
  6. Java技术中的三大特性
  7. 三星Galaxy Fold入网:屏幕故障+数次跳票 热度还有多少?
  8. 最好的ppt转pdf软件
  9. 如何删除github上的文件
  10. 39页第6题 求贷款的金额
  11. Matlab实现光栅实验
  12. 常用的三种非对称加密算法
  13. RGB888转换为RGB565原理及工具
  14. python和c 情侣网名_简单情侣网名的介绍
  15. html js获取天气预报,js 读取天气预报信息 示例代码(百度地图天气接口)
  16. discuz密码找回:忘记UCENTER创始人密码
  17. Unsupervised Cross-Dataset Transfer Learning for Person Re-identification阅读总结
  18. Web Service 测试
  19. 神奇的水滴效果导航栏-BezierIndicator
  20. English Learning - L1-12 情态动词 + 倒装 2023.1.12 周四

热门文章

  1. kafka config参数配置简要说明
  2. 软件能力水平测试机考,信息技术学业水平测试上机考试步骤
  3. 3.EP4CE10F17的串口设计
  4. 最新!《5G应用场景研究》发布
  5. Nginx之TCP端口转发
  6. 家用计算机如何配置好,新手如何选配电脑
  7. git - 本地代码与远程仓库合并
  8. 扫码器.java_条码扫描器在Java上的实现
  9. 绝地求生电脑设备测试软件,绝地求生要什么样的电脑配置可以玩?
  10. 基于at89c52单片机温湿度c语言,基于AT89C52单片机的温度监控报警系统的设计