Как избавиться от предупреждения компилятора NDK: "APP_PLATFORM больше.." и "Invalid package"
У меня есть следующий 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>
Как я могу избавиться от этих предупреждений?
Ответы
Ответ 1
Что касается "пакета", это скорее всего проблема с crlf с вашим XML файлом. Проверьте там символы конца строки. Или, возможно, что-то не так в вашем файле project.properties
.
Предупреждение APP_PLATFORM действительно правильно: ваша APP_PLATFORM (android-14) больше, чем андроид: minSdkVersion, установленный в AndroidManifest.xml. Это только предупреждение, напоминающее вам об этой (законной) ситуации, так что на определенном этапе вы решите отказаться от поддержки очень устаревших устройств.
Ответ 2
Для NDK rev r9 (работает и в других, но строка # может отличаться)
${NDK}/build/core/add-application.mk строка 138
добавить "#" в начале строки.
# $(вызов __ndk_info, ПРЕДУПРЕЖДЕНИЕ: APP_PLATFORM $(APP_PLATFORM) больше, чем андроид: minSdkVersion $(APP_MIN_PLATFORM_LEVEL) в $(APP_MANIFEST))
Один символ, 30 секунд исправить... пойти отладить собственный код.
Ответ 3
Вы можете исправить это, выполнив следующие шаги в Eclipse:
- Окно → Настройки → C/С++ → Сборка → Настройки
- Выберите CDT GNU C/С++ Error Parser
- В параметрах параметров ошибки в нижней части добавить новую запись со следующим содержимым:
Уровень важности: предупреждение
Образец: (.?): (\ d +): Android NDK: ПРЕДУПРЕЖДЕНИЕ: (.)
Файл: $1
Линия: $2
Описание: $3
Это должно преобразовать это в предупреждение, и вы можете также игнорировать это - в зависимости от серьезности, которая будет отображаться в представлении "Проблемы".