cocos-x 3.7+Android Studio:使用 cocos 插件时未配置 NDK
cocos-x 3.7+Android Studio: NDK not configured when cocos plugin is used
我已经在 Android Studio 下编译了新的 cocos 3.7 项目(虽然并不容易)。
当我在项目中添加 Facebook 插件时,出现此编译错误:
Skipping task ':libcocos2dx:compileDebugAidl' as it is up-to-date (took 0.008 secs).
:libPluginProtocol:compileReleaseNdk UP-TO-DATE
:libcocos2dx:compileDebugAidl (Thread[Task worker Thread 3,5,main]) completed. Took 0.011 secs.
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':libPluginProtocol:compileReleaseNdk'.
> NDK not configured.
Download the NDK from http://developer.android.com/tools/sdk/ndk/.Then add ndk.dir=path/to/ndk in local.properties.
(On Windows, make sure you escape backslashes, e.g. C:\ndk rather than C:\ndk)
* Try:
Run with --stacktrace option to get the stack trace. Run with --debug option to get more log output.
BUILD FAILED
我在 "Import Module" 的项目中添加了插件,然后选择了相应的 proj.android 文件夹。
我尝试过的:
- 为所有模块设置相同的 compile/target/min sdk/tools 版本(从以前工作的模块复制值)
- 正在将 ndk.dir 添加到我的项目 local.properties
- 正在将 ndk.dir 添加到 libPluginProtocol local.properties
- 通过
jni.srcDirs = []
禁用自动 ndk-build 调用
更改 local.properties 无效,因为这些文件是自动生成的,我添加的 ndk.dir 条目丢失了。
我正在从命令行编译:cocos compile -p android --android-studio
环境:cocos-js 3.7,ndk=r10c
这是我生成的 gradle 文件的峰值:
项目(工作)
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "com.sharkintelligence.GameXY.google.full"
minSdkVersion 10
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
sourceSets.main {
java.srcDir "src"
res.srcDir "res"
jniLibs.srcDir "libs"
manifest.srcFile "AndroidManifest.xml"
assets.srcDir "assets"
jni.srcDirs = [] //disable automatic ndk-build call
}
signingConfigs {
release {
if (project.hasProperty("RELEASE_STORE_FILE")) {
storeFile file(RELEASE_STORE_FILE)
storePassword RELEASE_STORE_PASSWORD
keyAlias RELEASE_KEY_ALIAS
keyPassword RELEASE_KEY_PASSWORD
}
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
if (project.hasProperty("RELEASE_STORE_FILE")) {
signingConfig signingConfigs.release
}
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':libcocos2dx')
compile project(':libPluginFacebook')
}
libcocos(工作)
apply plugin: 'com.android.library'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
minSdkVersion 10
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
sourceSets.main {
aidl.srcDir "../java/src"
java.srcDir "../java/src"
manifest.srcFile "AndroidManifest.xml"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
}
libPluginProtocol(不工作)
apply plugin: 'com.android.library'
android {
compileSdkVersion 22
buildToolsVersion '22.0.1'
defaultConfig {
minSdkVersion 10
targetSdkVersion 22
ndk {
moduleName "PluginProtocolStatic"
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
productFlavors {
}
}
dependencies {
}
答案是设置系统变量ANDROID_NDK_HOME
。
在我的例子中:export ANDROID_NDK_HOME=$NDK_ROOT
我已经在 Android Studio 下编译了新的 cocos 3.7 项目(虽然并不容易)。 当我在项目中添加 Facebook 插件时,出现此编译错误:
Skipping task ':libcocos2dx:compileDebugAidl' as it is up-to-date (took 0.008 secs).
:libPluginProtocol:compileReleaseNdk UP-TO-DATE
:libcocos2dx:compileDebugAidl (Thread[Task worker Thread 3,5,main]) completed. Took 0.011 secs.
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':libPluginProtocol:compileReleaseNdk'.
> NDK not configured.
Download the NDK from http://developer.android.com/tools/sdk/ndk/.Then add ndk.dir=path/to/ndk in local.properties.
(On Windows, make sure you escape backslashes, e.g. C:\ndk rather than C:\ndk)
* Try:
Run with --stacktrace option to get the stack trace. Run with --debug option to get more log output.
BUILD FAILED
我在 "Import Module" 的项目中添加了插件,然后选择了相应的 proj.android 文件夹。
我尝试过的:
- 为所有模块设置相同的 compile/target/min sdk/tools 版本(从以前工作的模块复制值)
- 正在将 ndk.dir 添加到我的项目 local.properties
- 正在将 ndk.dir 添加到 libPluginProtocol local.properties
- 通过
jni.srcDirs = []
禁用自动 ndk-build 调用
更改 local.properties 无效,因为这些文件是自动生成的,我添加的 ndk.dir 条目丢失了。
我正在从命令行编译:cocos compile -p android --android-studio
环境:cocos-js 3.7,ndk=r10c
这是我生成的 gradle 文件的峰值:
项目(工作)
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "com.sharkintelligence.GameXY.google.full"
minSdkVersion 10
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
sourceSets.main {
java.srcDir "src"
res.srcDir "res"
jniLibs.srcDir "libs"
manifest.srcFile "AndroidManifest.xml"
assets.srcDir "assets"
jni.srcDirs = [] //disable automatic ndk-build call
}
signingConfigs {
release {
if (project.hasProperty("RELEASE_STORE_FILE")) {
storeFile file(RELEASE_STORE_FILE)
storePassword RELEASE_STORE_PASSWORD
keyAlias RELEASE_KEY_ALIAS
keyPassword RELEASE_KEY_PASSWORD
}
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
if (project.hasProperty("RELEASE_STORE_FILE")) {
signingConfig signingConfigs.release
}
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':libcocos2dx')
compile project(':libPluginFacebook')
}
libcocos(工作)
apply plugin: 'com.android.library'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
minSdkVersion 10
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
sourceSets.main {
aidl.srcDir "../java/src"
java.srcDir "../java/src"
manifest.srcFile "AndroidManifest.xml"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
}
libPluginProtocol(不工作)
apply plugin: 'com.android.library'
android {
compileSdkVersion 22
buildToolsVersion '22.0.1'
defaultConfig {
minSdkVersion 10
targetSdkVersion 22
ndk {
moduleName "PluginProtocolStatic"
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
productFlavors {
}
}
dependencies {
}
答案是设置系统变量ANDROID_NDK_HOME
。
在我的例子中:export ANDROID_NDK_HOME=$NDK_ROOT