Behebung des Fehlers „AAPT2 aapt2-4.1.2-6503028-osx Daemon #0 konnte nicht innerhalb der Zeitüberschreitung heruntergefahren werden“ beim Kompilieren mit Unity

Um diesen Fehler zu beheben, müssen wir zunächst verstehen, was AAPT ist.

Der vollständige Name von aapt lautet Android Asset Packaging Tool, das Android-Ressourcenverpackungstool. Als Unity-Entwickler habe ich im Allgemeinen weniger Kontakt zu Android. Interessierte Studenten können zunächst die offizielle Website besuchen, um etwas zu lernen.

Problemanalyse

## aapt2-Version

Zunächst verwendet 4.1.2-6503028 die appt2 SDK-Version.

Die spezifischen Versionsinformationen finden wir im Maven Warehouse

https://maven.google.com/web/index.html?q=aapt2#com.android.tools.build:aapt2:4.1.2-6503028

## Fehler

Diese Art von Zeitüberschreitungsproblem wird im Allgemeinen durch ein Ressourcenproblem in Unity verursacht.

Problem gelöst

Der einfachste Weg besteht darin, zu überprüfen, ob das Array aaptOptions.noCompress in der Datei build.gradle im von Unity exportierten Android-Projekt normal ist oder 255 überschreitet und die Länge des Arrays in der Verpackungsdatei weniger als 255 betragen muss. In unserer Projektentwicklung ist es einfacher, diese Obergrenze zu überschreiten, wenn das ab-Paket feiner aufgeteilt wird. Selbst wenn die Obergrenze nicht überschritten wird, kann es relativ leicht zu einem Timeout-Problem während des Verpackungsprozesses kommen.

Unity ist standardmäßig auf

aaptOptions {
        noCompress '.unity3d', '.ress', '.resource', '.obb'**STREAMING_ASSETS**
    }

Bei der Ausgabe als build.gradle-Datei führt das Einfügen aller Dateien in StreamingAssets in ein Array dazu, dass das Array leichter zu lang wird, was zu einer langsamen Kompilierung führt. Aber unser ab-Paket muss ignoriert werden, sonst wird das Spiel sehr langsam geladen.

Sie können das Ignorieren aller Dateien im Ordner abbrechen, das Ignorieren jedoch nach Typ.

ändern in:

aaptOptions {
        //手动忽略指定文件及.assetbundle文件或.bundle文件
        noCompress = ['.unity3d', '.ress', '.resource', '.obb', '.assetbundle','.bundle']
    }

Wenn Ihr Ladevorgang unter Android deutlich langsamer ist als unter IOS, können Sie auch darauf achten, ob die in Unity benötigten Ressourcen von Android erneut verpackt und komprimiert werden.

Ich denke du magst

Origin blog.csdn.net/weixin_36719607/article/details/126201771
Empfohlen
Rangfolge