Search code examples
androidvisual-studiomobilemaui

Updating .NET MAUI app to android version 34 causing app to crash


I recently tried updating a .NET MAUI app that we have that was targeting android version 33 to version 34. Im now getting 4 errors:

Assets file '{Filepath}\obj\project.assets.json' doesn't have a target for 'net8.0-windows10.0.19041.0'. Ensure that restore has run and that you have included 'net8.0-windows10.0.19041.0' in the TargetFrameworks for your project.

Assets file '{Filepath}\obj\project.assets.json' doesn't have a target for 'net8.0-ios'. Ensure that restore has run and that you have included 'net8.0-ios' in the TargetFrameworks for your project.

Assets file '{Filepath}\obj\project.assets.json' doesn't have a target for 'net8.0-android34.0'. Ensure that restore has run and that you have included 'net8.0-android34.0' in the TargetFrameworks for your project.

Assets file '{Filepath}\obj\project.assets.json' doesn't have a target for 'net7.0-maccatalyst'. Ensure that restore has run and that you have included 'net7.0-maccatalyst' in the TargetFrameworks for your project.

I've tried running msbuild /target:Restore {Project Name.sln} from the developer powershell, but still no dice. I see that this seems to be a pretty common issue but I haven't had any luck with the solutions


Solution

  • If you don't have to use the new api in the Android version 34.0, the easiest way to update your app to android version 34 is setting the target sdk in the AndoridManifest.xml. Just add the following code in the AndoridManifest.xml.

    <uses-sdk android:targetSdkVersion="34" />
    

    In addition, the .Net 7 is obsolete. So if you want to upgrade your maui project from .net 7 to .net 8, you can change the csproj file as the following code after installing .NET 8 and the .NET MAUI workload.

    <PropertyGroup>
         <TargetFrameworks>net8.0-android;net8.0-ios;net8.0-maccatalyst</TargetFrameworks>
         <TargetFrameworks Condition="$([MSBuild]::IsOSPlatform('windows'))">$(TargetFrameworks);net8.0-windows10.0.19041.0</TargetFrameworks>
    

    The .net 8.0 maui project target Android version 34 defaultly. For more information, you can refer to Upgrading .NET MAUI from .NET 7 to .NET 8.