2017-07-31 280 views
1

我得到这个错误,当我在下面“AndEngine”的模块中的一个项目,错误:错误:“__ANDROID_API__”宏重新定义[-Werror,-Wmacro重新定义] -Android工作室

1 )andEngine 2)andEnginePhysicsBox2DExtension 3)andEngineTexturePackerExtension

此前(2 - 3几个月前),该项目被正确执行。而现在,当我试图执行代码时,我正面临着这个错误。

当我试图评论的 “LOCAL_CFLAGS:= -Werror” 行,从 “andEngine” 模块的 “Android.mk” 然后我得到了如下错误,

[armeabi-v7a] Compile++ arm : andenginephysicsbox2dextension <= b2PolygonAndCircleContact.cpp 
In file included from <built-in>:346: 
<command line>:6:9: warning: '__ANDROID_API__' macro redefined [-Wmacro-redefined] 
#define __ANDROID_API__ 14 
     ^
<built-in>:338:9: note: previous definition is here 
#define __ANDROID_API__ 9 
     ^
error: error opening 'C:/Users/.../andEnginePhysicsBox2DExtension/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/andenginephysicsbox2dextension/Box2D/Dynamics/Contacts/b2PolygonAndCircleContact.o.d': No such file or directory 
1 warning and 1 error generated. 
make: *** [C:/Users/.../andEnginePhysicsBox2DExtension/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/andenginephysicsbox2dextension/Box2D/Dynamics/Contacts/b2PolygonAndCircleContact.o] Error 1 

FYI ... Android Studio:2.3.3。 NDK:是最新的。

在此先感谢。

+0

我没有给你答案,但我质疑你为什么使用AndEngine。我很久以前就使用过它,并且喜欢它,但据我所知,它并没有得到保持。 Github的最后一个条目是5年前。 –

+0

可能与包含文件或模块编译的顺序有关。发布你的make文件可能会有所帮助。它过去编译的事实意味着某些事情发生了变化 - 可能是你的NDK(你可以尝试用一个较老的,只是为了指出问题)。 – yakobom

+0

@AlLelopath,这是一个在eclipse中开发的老应用程序,我已经在2-3个月后将其导入到Android工作室中,以实现目前正在进行的新更改......由于该应用程序非常复杂,因此将它从AndEngine更改为任何其他平台/引擎将是一项艰巨的任务...欢迎任何其他建议。 –

回答

1

经过长时间的研究,终于找到了解决办法。

所有你要做的就是,

1)在 “andEngine” 的 “Android.mk” 文件,用 “LOCAL_CFLAGS:= -Werror” 更换符合 “LOCAL_CFLAGS:= -w”。其中“-Werror”显示警告,因为它是一个错误,“-w”禁止所有与“andEngine”和其他模块相关的警告(不是实际的错误)。

2)请清理该项目,它应该在大多数情况下工作。在情况下,你仍然有一些错误(S)然后按照步骤3

3)现在您可以删除“jniLibs”文件夹中存在的“andEngine的\ src \主\”路径(或路径的文件夹代替“和发动机”)并重新编译代码。

Error:Execution failed for task ':andEngine:transformNativeLibsWithMergeJniLibsForDebug'. More than one file was found with OS independent path 'lib/x86/libandengine.so'

并感谢大家的意见/建议。