Мне нужно установить для целевой версии SDK проекта Android значение API 14. Но у меня нет той же версии, доступной для компиляции проекта. Я знаю, что проект можно скомпилировать с другой версией, но мне нужно знать, вызовет ли это какие-либо проблемы.
Я получил ошибку «Файл манифеста Android отсутствует», хотя она существует. Когда я очистил, а затем построил проект, он был скомпилирован, но приложение вылетело. Что я здесь делаю не так?
compileSdkVersion
CompileSdkVersion - это версия API, с которой скомпилировано приложение. Это означает, что вы можете использовать функции Android API, включенные в эту версию API (как и все предыдущие версии, очевидно). Если вы попытаетесь использовать функции API 16, но установите для compileSdkVersion значение 15, вы получите ошибку компиляции. Если вы установите compileSdkVersion на 16, вы все равно сможете запускать приложение на устройстве с API 15, пока пути выполнения вашего приложения не будут пытаться вызывать какие-либо API, специфичные для API 16.
targetSdkVersion
TargetSdkVersion не имеет ничего общего с тем, как ваше приложение скомпилировано или какие API вы можете использовать. Предполагается, что targetSdkVersion указывает на то, что вы протестировали свое приложение на указанной вами версии (предположительно до и включительно). Это больше похоже на сертификацию или подписку, которую вы даете ОС Android в качестве подсказки о том, как она должна обрабатывать ваше приложение с точки зрения функций ОС.
Что касается явной ошибки, вы можете попробовать (если вы используете студию Android), нажав Файл> Недействительные кеши / перезапустить или принудительно выполнить синхронизацию градиента
В идеале вы должны установить целевой и минимальный SDK на 14 или самый низкий API, который вы хотите развернуть.
При компиляции с более высокой версией не должно возникать проблем, это даже рекомендуется. Вы можете найти больше по этой теме в этом Средняя статья.
Я также хотел бы обратить ваше внимание на следующий блог, который содержит важную информацию о таргетинге SDK в ближайшем будущем.
К сожалению, я не использую Eclipse, поэтому боюсь, что не могу предоставить какие-либо достоверные сведения по этому поводу. Однако предложения, которые я нашел до сих пор, включают:
Проблема с манифестом, вероятно, возникла из-за многократного создания проекта с одинаковым именем. Однако чистая -> сборка проекта помогла мне избавиться от него.
Ага. Версия компиляции Android может быть выше целевой. Версия компиляции Android и целевая версия не обязательно должны совпадать.
Спасибо за ваши ответы.
Я думаю, что проблема с манифестом возникла из-за многократного создания проекта с одним и тем же именем. Однако чистая -> сборка проекта помогла мне избавиться от него.
Ага. Версия компиляции Android может быть выше целевой. Эти двое не обязательно должны быть одинаковыми.
Я использую Eclipse, избавился от ошибки, но приложение вылетает. Это просто пустое приложение. Я думаю, это связано с несоответствием версий SDK.