如何摆脱NDK编译器警告:“APP_PLATFORM更大..”和“无效包”

时间:2013-04-01 07:28:50

标签: android-ndk

我有以下Application.mk

APP_PLATFORM := android-9
APP_STL := gnustl_static
APP_CPPFLAGS := -frtti -fexceptions -O2 -mfpu=neon -mfloat-abi=softfp
APP_ABI := armeabi-v7a
LOCAL_ARM_NEON := true

当运行ndk-build时,我总是收到警告:

Invalid attribute name: 
    package
/Users/tmanthey/Documents/android/android-ndk-r8d/build/core/add-application.mk:128: Android NDK: WARNING: APP_PLATFORM android-14 is larger than android:minSdkVersion  in ./AndroidManifest.xml    
Invalid attribute name: 
    package

这是我的AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.evotegra.aCoDriver"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="9" android:targetSdkVersion="17" />

    <uses-permission android:name="android.permission.CAMERA" />

    <uses-feature android:name="android.hardware.camera" />
    <uses-feature android:name="android.hardware.camera.autofocus" />

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.VIBRATE"/>

    <application
        android:name=".ACoDriverApp"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" android:allowBackup="true">
        <activity
            android:name=".ACoDriverActivity"
            android:label="@string/app_name" android:launchMode="singleTask">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="PreferencesActivity" />
        <activity android:name="GaugeSelectActivity" />
    </application>

</manifest>

如何摆脱这些警告?

3 个答案:

答案 0 :(得分:3)

关于“包”,这很可能是您的XML文件存在一些 crlf 问题。检查那里的行结束字符。或者,您的project.properties文件可能有问题。

APP_PLATFORM警告实际上是正确的:您的APP_PLATFORM(android-14)大于您在AndroidManifest.xml中设置的android:minSdkVersion。这只是一个警告,提醒您这种(合法)情况,以便在某个阶段您决定放弃对过时设备的支持。

答案 1 :(得分:3)

对于NDK rev r9(也适用于其他人,但行#可能不同)

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

在行的开头添加“#”。

#$(调用__ndk_info,警告:APP_PLATFORM $(APP_PLATFORM)大于android:minSdkVersion $(APP_MIN_PLATFORM_LEVEL)$(APP_MANIFEST))

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

答案 2 :(得分:1)

您可以通过在Eclipse中执行以下步骤来解决此问题:

  • 窗口 - &gt;偏好 - &gt; C / C ++ - &gt;构建 - &gt;设置
  • 选择CDT GNU C / C ++错误分析器
  • 在底部的Error Parser选项中,添加一个包含以下内容的新条目:

严重性:警告

模式:(。?):( \ d +):Android NDK:警告:(。

档案:$ 1

行:$ 2

描述:3美元

这应该将其转换为警告,您也可以选择忽略它 - 具体取决于它将在“问题”视图中显示的严重性。