2018年4月20日金曜日

cocos2d-x 3.16 SDKBOXを使ってAdmob、share機能を導入したらAndroid Studioでビルドエラー

macOS 10.13.4
cocos2d-x 3.16
sdkbox v1.0.1.34
Android Studio 3.11

cd プロジェクトフォルダ
sdkbox import AdMob
sdkbox import share

としたらInstllation Successfulと表示されて成功した。
あとはドキュメント通りに設定したらiOSではうまくいった。

http://docs.sdkbox.com/en/plugins/admob/v3-cpp/
http://docs.sdkbox.com/en/plugins/share/v3-cpp/

しかしAndroid Studioでビルドしようとしたらエラーが出た。

org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':appname:processDebugResources'.

解決方法

1.Gradleを最新のものにしない。
Android Studioでプロジェクトを開いたときに、Gradleを最新にアップデートすることをstrongly recommendされるが、最新の3.1.1にするとエラーが出るので、アップデートしない。
アップデートしてしまった場合は、プロジェクトレベルのbuild.gradleを編集して、バージョン番号を3.0.1にする。

dependencies {
    classpath 'com.android.tools.build:gradle:3.0.1'
    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}
2.appフォルダ内のbuild.gradleを編集する。 buildToolsVersionを27.0.3に、defaultConfig内にmultiDexEnabled trueを追加する。 また、リリースビルド時にMissing Translationというエラーが出る場合は、lintOptions {disable 'MissingTranslation'}を追記する。
android {
    lintOptions {
        disable 'MissingTranslation'
    }
    compileSdkVersion PROP_COMPILE_SDK_VERSION.toInteger()
    buildToolsVersion "27.0.3"

    defaultConfig {
        applicationId "info.mygames888.nanikiru"
        minSdkVersion PROP_MIN_SDK_VERSION
        targetSdkVersion PROP_TARGET_SDK_VERSION
        versionCode 1
        versionName "1.01"
        multiDexEnabled true
3.projectレベルのgradle.propertiesを編集する。
PROP_COMPILE_SDK_VERSIONとPROP_TARGET_SDK_VERSIONを23に、PROP_MIN_SDK_VERSIONを21にする。
PROP_COMPILE_SDK_VERSION=23
PROP_MIN_SDK_VERSION=21
PROP_TARGET_SDK_VERSION=23
PROP_APP_PLATFORM=10
PROP_APP_ABI=armeabi-v7a
3. これでビルドできるようになる。

参考:
https://stackoverflow.com/questions/36237132/execution-failed-for-task-appprocessdebugresources-even-with-latest-build-to https://discuss.cocos2d-x.org/t/sdkbox-android-studio-build-failed/42387