У меня есть приложение .NET MAUI, построенное на .NET 8, с использованием последних обновлений и т. д.
Я получил электронное письмо от Google Play, в котором говорится, что мое приложение должно быть ориентировано на Android API 34 в соответствии с их текущей политикой поддержки.
Я щелкнул правой кнопкой мыши свой проект, выбрал «Свойства» и установил цели под Application > Android Targets — см. изображение ниже.
Затем я получил сообщение об ошибке, в котором говорилось, что цели в AndroidManifest.xml не соответствуют файлу проекта. Поэтому я обновил его до следующего:
<uses-sdk android:minSdkVersion = "32" android:targetSdkVersion = "34" />
Теперь, когда я пытаюсь создать свой проект, я получаю следующую ошибку, но я уже удалил папки bin и obj, поэтому сейчас они даже не существуют. Вот ошибка:
Файл ресурсов 'my-project-folder\my-project\obj\project.assets.json' нет цели для «net8.0-android34.0». Убедитесь, что восстановление выполнено. и что вы включили «net8.0-android34.0» в TargetFrameworks для вашего проекта.
Я бегал dotnet restore несколько раз. В первый раз рабочая нагрузка обновилась до 8.0.7. Ранее сегодня я обновил Visual Studio до последней версии, поэтому предполагаю, что рабочая нагрузка не обновилась должным образом.
И вот что я вижу в файле проекта:
<TargetFrameworks>net8.0-ios;net8.0-android34.0</TargetFrameworks>
Любые предложения о том, как решить эту проблему? В настоящее время я не могу скомпилировать свой проект.
Обновлять:
Вот что я получил, когда побежал dotnet workload list:
Затем я запустил dotnet workload update, но при попытке создать проект все равно получаю ту же ошибку.
См. раздел обновления в исходном сообщении. Было несколько обновлений, поэтому я запустил dotnet workload update, но все равно получал ту же ошибку.
Спасибо за обновление. Не устанавливайте для Target Android Framework значение Android 14.0 (уровень API 34) в разделе Application > Android Targets, а в файле CSPOJ измените его на <TargetFrameworks>net8.0-ios;net8.0-android</TargetFrameworks>. И ставьте цели только в AndroidManifest.xml типа <uses-sdk android:minSdkVersion = "32" android:targetSdkVersion = "34" /> в
Спасибо! Кажется, что отсутствие установки целевой платформы в свойствах/файле проекта решает проблему, но означает ли это, что я не соблюдаю требование Google Play Store о том, чтобы не ориентироваться на Android API 34? Раньше у меня никогда не было API Android, указанного в свойствах/файле проекта. Единственная причина, по которой я это сделал, — это адрес электронной почты, которую я получил от Google Play.
Я думаю, запись в AndroidManifest.xml соответствует требованиям Google Play. Прав ли я в этом предположении?
Хорошо поймал!! :)
@AlexandarMay-MSFT Можете ли вы объяснить, почему не установить для Target Android Framework значение Android 14.0? Это кажется нелогичным. Спасибо





Обратите внимание: если вы используете net8.0, по умолчанию Target Android Framework, как вы установили в Application > Android Targets, равно Android 14.0(API Level 34). Так что вам не нужно его устанавливать. Этот параметр используется для установки API компиляции для проекта.
Чтобы устранить проблему, вы можете использовать <uses-sdk android:minSdkVersion = "32" android:targetSdkVersion = "34" в AndroidManifest.xml, чтобы соответствовать требованию Google Play . См. Зачем ориентироваться на новые SDK?.
Спасибо! Очень ценю вашу помощь и всю предоставленную вами информацию!
В командной строке введите
dotnet workload list, какие версии рабочей нагрузки для Android?