Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Abgang
Das Tool aapt2 kann eine der übergebenen Dateien nicht auflösen.
Dies wird in der Regel dadurch verursacht, dass der Pfad länger als die für Fenster zulässige maximale Pfadlänge ist.
Lösung
Die beste Möglichkeit, dies zu vermeiden, besteht darin, sicherzustellen, dass sich Ihr Projekt nicht tief in der Ordnerstruktur befindet. Wenn Sie beispielsweise alle Projekte in Ordnern erstellen, z. B.
C:\Users\shelly\Visual Studio 2022\Android\MyProjects\Com.SomeReallyLongCompanyName.MyBrillantApplication\MyBrilliantApplicaiton.Android\
Möglicherweise treten probleme nicht nur aapt2 mit der Vorab-Time-Kompilierung auf. Wenn Sie Ihre Projektnamen und Ordnerstrukturen kurz halten, hilft ihnen, diese Probleme zu umgehen. Anstelle der oben genannten Beispiele könnten Sie z. B.
C:\Work\Android\MyBrilliantApp
Dies ist viel kürzer und viel weniger wahrscheinlich pfadprobleme.
Dies ist jedoch nicht immer möglich. Manchmal erfordert ein Projekt oder eine Umgebung tiefe Ordnerstrukturen. Das Aktivieren der Unterstützung von langen Pfaden in Windows reicht möglicherweise aus, um Ihr Projekt zu arbeiten. Details dazu finden Sie hier.
Wenn die Unterstützung für lange Pfade nicht funktioniert, kann dies $(BaseIntermediateOutputPath) dazu beitragen, diese Probleme zu lösen. Damit dies funktioniert, muss die Einstellung geändert werden, bevor ein Build oder eine Wiederherstellung erfolgt. Dazu können Sie die MSBuild-Unterstützung Directory.Build.props nutzen.
Erstellen sie eine Directory.Build.props Datei in Ihrem Projektmappen- oder Projektverzeichnis, die den $(BaseIntermediateOutputPath) Stamm des Laufwerks an einer beliebigen Stelle neu definiert, wobei diese Probleme behoben werden. Wenn Sie eine Datei mit dem folgenden Inhalt hinzufügen, wird das obj Verzeichnis an einem anderen Speicherort Ihrer Wahl erstellt.
<Project>
<PropertyGroup>
<BaseIntermediateOutputPath Condition=" '$(OS)' == 'Windows_NT' ">C:\Intermediate\$(ProjectName)</BaseIntermediateOutputPath>
<BaseIntermediateOutputPath Condition=" '$(OS)' != 'Windows_NT' ">/tmp/Intermediate/$(ProjectName)</BaseIntermediateOutputPath>
</PropertyGroup>
</Project>
Durch die Verwendung dieser Technik werden die Längen der Pfade reduziert, die an die verschiedenen Tools gesendet werden, z aapt2. B. .
Beachten Sie, dass dies in der Regel nur ein Windows-Problem ist. Daher ist es nicht erforderlich, die $(BaseIntermediateOutputPath) auf Mac- oder Linux-basierten Umgebungen außer Kraft zu setzen. Möglicherweise möchten Sie jedoch überall außer Kraft setzen, um konsistent zu sein.