2017-07-31 322 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'

並感謝大家的意見/建議。