Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Probleem
Het hulpprogramma aapt2 kan een van de bestanden die het is doorgegeven, niet oplossen.
Dit wordt meestal veroorzaakt doordat het pad langer is dan de maximale padlengte die is toegestaan in vensters.
" needed as the existing translation is correct.
De beste manier om dit te voorkomen, is ervoor te zorgen dat uw project zich niet diep in de mapstructuur bevindt. Als u bijvoorbeeld al uw projecten maakt in mappen zoals
C:\Users\shelly\Visual Studio 2022\Android\MyProjects\Com.SomeReallyLongCompanyName.MyBrillantApplication\MyBrilliantApplicaiton.Android\
U kunt problemen ondervinden met niet alleen aapt2 , maar ook vooruit op tijd compilatie. Door uw projectnamen en mapstructuren kort en beknopt te houden, kunt u deze problemen omzeilen. In plaats van het bovenstaande kunt u bijvoorbeeld
C:\Work\Android\MyBrilliantApp
Dit is veel korter en veel minder kans op padproblemen.
Dit is echter niet altijd mogelijk. Soms vereist een project of omgeving diepe mapstructuren. Het inschakelen van ondersteuning voor lange paden in Windows kan voldoende zijn om uw project te laten werken. Meer informatie over hoe u dit kunt doen, vindt u hier.
Als de ondersteuning voor lange paden niet werkt, kan het wijzigen van de locatie van de $(BaseIntermediateOutputPath) helpen deze problemen op te lossen. Als u dit wilt laten werken, moet de instelling worden gewijzigd voordat een build of herstel plaatsvindt. Hiervoor kunt u gebruikmaken van de MSBuild-ondersteuning Directory.Build.props .
Een Directory.Build.props bestand aanmaken in uw oplossings- of projectmap waarmee u de $(BaseIntermediateOutputPath) opnieuw definieert naar dichter bij de hoofdmap van het station, lost deze problemen op. Als u een bestand toevoegt met de volgende inhoud, wordt de obj map op een andere locatie van uw keuze gemaakt.
<Project>
<PropertyGroup>
<BaseIntermediateOutputPath Condition=" '$(OS)' == 'Windows_NT' ">C:\Intermediate\$(ProjectName)</BaseIntermediateOutputPath>
<BaseIntermediateOutputPath Condition=" '$(OS)' != 'Windows_NT' ">/tmp/Intermediate/$(ProjectName)</BaseIntermediateOutputPath>
</PropertyGroup>
</Project>
Door deze techniek te gebruiken, worden de lengten van de paden die naar de verschillende hulpprogramma's worden verzonden, verminderd aapt2.
Houd er rekening mee dat dit over het algemeen alleen een Windows-probleem is. Het is dus niet nodig om de $(BaseIntermediateOutputPath) op Mac- of Linux gebaseerde omgevingen te overschrijven. U wilt echter mogelijk overal buiten werking stellen om consistent te blijven.