Android Studio 3.0 编译报错

用cocos2dx3.16新建了个Helloword项目,在Android studio3.0上面编译一直报错

Information:Gradle tasks [:TestGameDemo:assembleDebug]
Warning:Targeted device ABI or comma-delimited ABIs [x86,armeabi-v7a] is not one of [armeabi]. Nothing to build.
Warning:Targeted device ABI or comma-delimited ABIs [x86,armeabi-v7a] is not one of [armeabi]. Nothing to build.
Error:Execution failed for task ‘:TestGameDemo:externalNativeBuildDebug’.

Unexpected native build target MyGame. Valid values are:
Information:BUILD FAILED in 6s
Information:1 error
Information:2 warnings
Information:See complete output in console

不知道是不是build.gradle里面nkdBuild设置问题,
externalNativeBuild {
ndkBuild {
if (!project.hasProperty(“PROP_NDK_MODE”) || PROP_NDK_MODE.compareTo(‘none’) != 0) {
// skip the NDK Build step if PROP_NDK_MODE is none
targets ‘MyGame’
arguments ‘NDK_TOOLCHAIN_VERSION=4.9’
arguments ‘APP_PLATFORM=android-’+PROP_APP_PLATFORM

                def module_paths = [project.file("../../cocos2d").absolutePath,
                                    project.file("../../cocos2d/cocos").absolutePath,
                                    project.file("../../cocos2d/external").absolutePath]
                if (Os.isFamily(Os.FAMILY_WINDOWS)) {
                    // should use '/'
                    module_paths = module_paths.collect {it.replaceAll('\\\\', '/')}
                    arguments 'NDK_MODULE_PATH=' + module_paths.join(";")
                }
                else {
                    arguments 'NDK_MODULE_PATH=' + module_paths.join(':')
                }
                
                arguments '-j' + Runtime.runtime.availableProcessors()
                abiFilters.addAll(PROP_APP_ABI.split(':').collect{it as String})
            }
        }
    }

需要修改什么了?

用2.x的吧,3.x的没法编译库,好像

你说Android studio换成2.x的对吧?

3.16新建工程在android studio 2.3.3版本测试过,没问题,3.0遇到编译错误的话,就改一下,基本是头文件包含类似的问题

编译先从最简单的tests目录cpp-empty-test开始,那个通过,再试新建工程。

这段日志并没有看到真正的编译错误出处,只说明编译C++的时候出错了,MyGame是通过Android.mk编译C++最后要生成的动态库so的名字

谢谢。,我把Android studio改成2.3.3的版本了,然后修改了一下设置现在可以了,,谢谢回答,

修改的什么设置?
我现在也是遇上了同样的问题:
先在Android Studio 3.0.1上遇到问题,与描述一致;
将Android Studio 换成2.3.3版本,还是遇到同样的问题。

3.17 版本对 Android Studio 工程配置完善很多,新手可以去下载试一下

http://www.cocos.com/download

换成cocos 3.17,还是提示相同的问题,有可能是什么问题呢

你把 gradle console 的日志,全部收集起来,保存到一个 .log 文本传上来

gradle console log.zip (1.1 KB)
已传,麻烦帮忙看下

:MyGame:generateDebugResources UP-TO-DATE
:MyGame:mergeDebugResources UP-TO-DATE
:MyGame:processDebugManifest
E:\cocostest\MyGameDemo\MyGame\proj.android-studio\app\AndroidManifest.xml:49:5-66 Warning:
	Element uses-permission#android.permission.INTERNET at AndroidManifest.xml:49:5-66 duplicated with element declared at AndroidManifest.xml:7:5-67
:MyGame:processDebugResources

这日志不是 3.17 的新建项目,3.17 已经没 proj.android-studio 这个文件夹,用 3.17 的话,应该重新执行 setup.py 设置环境变量,不然 cocos new 的还是老版本的项目。另外你这个日志是 externalNativeBuildDebug 编译过的日志,看不到编译失败的详细信息,你要 clean 再重新编译,才能看到

gradle console log.zip (2.5 KB)
新建cocos 3.17项目
在cmd中利用命令行compile 工程:cocos compile -p android --ap android-22 --android-studio
编译错误,详细log见附件

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':libcocos2dx:compileDebugJavaWithJavac'.
> Could not find tools.jar. Please check that C:\Program Files\Java\jre1.8.0_171
 contains a valid JDK installation.

检查一下 java 环境,在 Android Studio 的 java 环境,可能和通过命令行的不一样

你在 Android Studio 中,直接导入项目,编译 cpp-empty-test 看是否正常

修改了JDK路径,现在还是build fail,错误提示:make: *** No rule to make targedot E:/cocowstest/Test/Test/proj.androisd//nap p/jni/../../../Classes/AccountScene.cpp', needed by E:/cocdoks-tbest/Test/Test/
purnoj.dalndroid/eapp/build/intermediates/ndkBuild/debug//obj/local/armeabi-v7a/
objs-debug/MyGambe_shared/E_/cocostest/Test/Test/proj.android/app/jni///__/C
ild//…/scountScene.o’. Stgradle console log.zip (3.2 KB)op

把你自定义的 cpp 编译环境变量拿掉,然后重新编译,估计是读到你的 cpp 环境变量上了。

嗯,已经成功了。上面的错误是因为没有把自己的.cpp和.h文件加入classes文件夹。
已利用cocos2d-x 3.17和Android Studio 3.0.1 compile和run工程成功,谢谢帮忙。

你是怎么成功的 修改了Android.mk文件吗 我添加了源文件头文件路径也不行