Android NDK:警告:APP_PLATFORM android-9比android:minSdkVersion 8大

使用cygwin编译我的cocos2d-x项目时遇到以下警告。

`/cygdrive/e/project/MyGame/proj.android ` /cygdrive/e/android-ndk-r8e/build/core/add-application.mk:128: Android NDK: WARNING:APP_PLATFORM android-9 is larger than android:minSdkVersion 8 in ./AndroidManifest.xml 

我正在使用NDK版本r8e。 我的AndroidManifest.xml中的最低SDK版本是8,但是我没有在任何地方指定APP_PLATFORM作为android-9。 我怎样才能改变这个8。

任何人都可以告诉我如何解决这个警告,因为我认为这可能会导致问题。

看来你正在使用Android-9作为运行时。 你可以把APP_PLATFORM := android-8放到你的Application.mk文件中,警告就会消失。

警告/错误背后的原因是它想让你知道它正在编译的目标平台的本地代码高于清单中的“最小”值。 基本上说,要小心使用旧操作系统不支持的function。 Application.mk更改是可以的,不应该对编译的代码有任何实际的负面影响。

~~替代解决scheme。

对于R8,您可以更改构build设置,将其视为警告而不是错误。 这在r8工作,但只是在r9中的一个部分修复。

对于NDK rev r9(在其他版本中也可以转速,但位置/行号可能不同)

$ {NDK} /build/core/add-application.mk第138行

在行首添加“#”。

#$(call __ndk_info,警告:APP_PLATFORM $(APP_PLATFORM)大于$(APP_MANIFEST)中的android:minSdkVersion $(APP_MIN_PLATFORM_LEVEL))

一个字符,30秒修复…去调​​试本机代码。

如果您希望编译您的本机库以获得比minSdkVersion更新的版本,则可以将Eclipseconfiguration为将错误更改为警告。 如果您知道Java代码不会在较旧版本的Android中加载本机库,那么这会很有用。 (警告:如果你不能保证,那么加载你的本地库在Android版本比APP_PLATFORM中指定的版本更旧可能会失败,并且如果有不满意的dynamic库链接会导致应用程序崩溃 – 例如,如果你的APP_PLATFORM是9, OpenSLES,如果你尝试在Android 2.2或更早的版本上使用JNI,这将失败,但只要你的Java方面知道这一点,并确保loa​​dLibrary从来没有在旧版本上调用,那么你没事。)

您可以按照以下步骤更改Eclipse设置,这些步骤由Google的某个人提供(在此链接中 )(另请参阅下面的重要说明):

在eclipse中:

 - Window -> Preferences -> C/C++ -> Build -> Settings - Select CDT GNU C/C++ Error Parser - In the Error Parser options at the bottom, add a new entry with the following contents: Severity: Warning Pattern: (.*?):(\d+): Android NDK: WARNING:(.*) File: $1 Line: $2 Description: $3 

重要! 谷歌的家伙没有注意到的是,你还需要使用设置中的“上移”button来移动你的新规则,否则一些其他更通用的规则盖过它,它不起作用。