添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
慈祥的苹果  ·  Unhandled exception ...·  4 月前    · 
星星上的泡面  ·  iLovePDF | Online PDF ...·  6 月前    · 
重情义的马克杯  ·  CircleCI Developer ...·  7 月前    · 
火爆的乒乓球  ·  Spring Cloud ...·  1 年前    · 
2
0

More than 3 years have passed since last update.

android studio 同期エラー "NDK version is UNKNOWN"

Posted at

新しいAndroid Studioを使用するため、Androidの開発環境を作り直しました。

Android Studioから Sync Project with Gradle Files を行うと失敗し、EventLogに以下の出力がありました。

Gradle sync started with IDEA sync
Project setup started
Gradle sync failed (6 s 705 ms)
NDK Resolution Outcome: Project settings: Gradle model version=4.4, NDK version is UNKNOWN

解決手順と調査したことを記述します。

作成した環境のバージョンです。(関連する項目のみ)

Executing tasks: [sync] in project C:\Users\hoge Support for CMake 3.7 and higher is a preview feature. To report a bug, see https://developer.android.com/studio/report-bugs.html Support for CMake 3.7 and higher is a preview feature. To report a bug, see https://developer.android.com/studio/report-bugs.html External native generate JSON debug: building json with force flag false External native generate JSON debug: starting JSON generation External native generate JSON debug: executing cmake Executable : C:\android-sdk\cmake\3.10.2.4988404\bin\cmake.exe arguments : BUILD FAILED in 1s 14:24:25: Task execution finished 'sync'.

CMake 3.7以上を使用する機能はプレビューであることがわかります。CMake 3.6を使用した方が良さそうです。

(2) デフォルトで使用されるCMakeのバージョン

SDK Managerでは、CMake 3.6、CMake 3.10、両方をインストールすることができます。

以下のドキュメントでは、CMakeのバージョンを指定する手順とデフォルトで使用するバージョンについて記述されています。

SDK Manager には、CMake の 3.6.0 分岐バージョンとバージョン 3.10.2 が含まれています。build.gradle で特定のバージョンの CMake を設定していないプロジェクトは、CMake 3.6.0 を使用してビルドされます。

この記述により、「このプロジェクトではCMakeのバージョンは指定していないので、両方インストールした場合はCMake3.6が使用される」、と思いました。しかし、実際に両方をインストールして、gradle syncを行った場合、同じエラーになります。

14:29:48: Executing task 'sync'...
Executing tasks: [sync] in project C:\Users\hoge
Support for CMake 3.7 and higher is a preview feature. To report a bug, see https://developer.android.com/studio/report-bugs.html
Support for CMake 3.7 and higher is a preview feature. To report a bug, see https://developer.android.com/studio/report-bugs.html
External native generate JSON debug: building json with force flag false
External native generate JSON debug: starting JSON generation
External native generate JSON debug: executing cmake Executable : C:\android-sdk\cmake\3.10.2.4988404\bin\cmake.exe
arguments : 
BUILD FAILED in 1s
14:29:48: Task execution finished 'sync'.

おそらくですが、「バージョンを設定していない場合にCMake 3.6を使用する」という動作は、Android-Gradle-Plugin 3.3からの動作だと思います。というのは、Android StudioでCMake 3.10をダウンロードできるようになったのは、Android Studio 3.3 だからです。
https://developer.android.com/studio/releases#cmake-3-10-2

実際に、Android-Gradle-Plugin のバージョンを3.3に更新してみます。
gradle :app:generateDebugSourcesを実行した出力メッセージの一部です。
「SDKにあるCMake 3.10.2は要求されたバージョン"3.6.0"とマッチしない。SDKにあるCMake 3.6.4111459は、バージョン"3.6.0"だ。」

14:38:07: Executing task ':app:generateDebugSources --info'...
No CMake version was specified in build.gradle. Choosing a suitable version.
Trying to locate CMake in local SDK repository.
CMake '3.10.2' found in SDK did not match requested version '3.6.0'.
- CMake found in SDK at 'C:\android-sdk\cmake\3.6.4111459' had version '3.6.0'
No CMake version was specified in build.gradle. Choosing a suitable version.
Trying to locate CMake in local SDK repository.
CMake '3.10.2' found in SDK did not match requested version '3.6.0'.
- CMake found in SDK at 'C:\android-sdk\cmake\3.6.4111459' had version '3.6.0'
BUILD SUCCESSFUL in 1s
5 actionable tasks: 5 up-to-date
14:38:09: Task execution finished ':app:generateDebugSources --info'.

ちなみに、Android-Gradle-Plugin 3.2の場合は、gradle assembleDebug --infoで確認できます。

Executing task 'assembleDebug --info'...
externalNativeBuildDebug: starting build
externalNativeBuildDebug: reading expected JSONs
externalNativeBuildDebug: done reading expected JSONs
externalNativeBuildDebug: executing build commands for targets that produce .so files or executables
externalNativeBuildDebug: evaluate miniconfig
externalNativeBuildDebug: evaluate library MarshalxIf-Debug-armeabi-v7a
externalNativeBuildDebug: building target library MarshalxIf because no targets are specified.
externalNativeBuildDebug: about to build C:\android-sdk\cmake\3.10.2.4988404\bin\cmake.exe --build C:\Users\
externalNativeBuildDebug: evaluate miniconfig
externalNativeBuildDebug: evaluate library MarshalxIf-Debug-arm64-v8a
externalNativeBuildDebug: building target library MarshalxIf because no targets are specified.
externalNativeBuildDebug: about to build C:\android-sdk\cmake\3.10.2.4988404\bin\cmake.exe --build C:\Users\
externalNativeBuildDebug: evaluate miniconfig
externalNativeBuildDebug: evaluate library MarshalxIf-Debug-x86
externalNativeBuildDebug: building target library MarshalxIf because no targets are specified.
externalNativeBuildDebug: about to build C:\android-sdk\cmake\3.10.2.4988404\bin\cmake.exe --build C:\Users\
externalNativeBuildDebug: evaluate miniconfig
externalNativeBuildDebug: evaluate library MarshalxIf-Debug-x86_64
externalNativeBuildDebug: building target library MarshalxIf because no targets are specified.
externalNativeBuildDebug: about to build C:\android-sdk\cmake\3.10.2.4988404\bin\cmake.exe --build C:\Users\
BUILD SUCCESSFUL in 8s
34 actionable tasks: 5 executed, 29 up-to-date
AAPT2 aapt2-3.2.0-4818971-windows Daemon #0: shutdown
15:25:52: Task execution finished 'assembleDebug --info'.
  • Android Gradle Plugin 3.1.2 では、CMake 7以上のバージョンを使用するビルドはプレビュー段階。
  • Android Gradle Plugin 3.1.2 では、CMake 3.6 を使用した方が良さそう。
  • "CMakeのバージョンを明記しないときには CMake 3.6を使用する"、という動作は、おそらくAndroid Gradle Plugin 3.3以上から。
  • Android Gradle Plugin 3.3未満では、新しいバージョンのCMakeを使用している。
  • こんなことよりも、いろいろなツールのバージョンの更新と検証をしましょう。

    Register as a new user and use Qiita more conveniently

    1. You get articles that match your needs
    2. You can efficiently read back useful information
    3. You can use dark theme
    What you can do with signing up
    0