.NET untuk APT2264 kesalahan Android
Alat aapt2
ini tidak dapat menyelesaikan salah satu file yang diteruskannya.
Ini umumnya disebabkan oleh jalur yang lebih panjang dari panjang Jalur Maksimum yang diizinkan pada jendela.
Cara terbaik untuk menghindari hal ini adalah dengan memastikan bahwa proyek Anda tidak terletak jauh di dalam struktur folder. Misalnya jika Anda membuat semua proyek Anda di folder seperti
C:\Users\shelly\Visual Studio 2022\Android\MyProjects\Com.SomeReallyLongCompanyName.MyBrillantApplication\MyBrilliantApplicaiton.Android\
Anda mungkin mengalami masalah dengan tidak hanya aapt2
tetapi juga kompilasi Sebelumnya. Menjaga nama proyek dan struktur folder Anda tetap pendek, ringkas akan membantu mengatasi masalah ini. Misalnya, alih-alih hal di atas yang dapat Anda gunakan
C:\Work\Android\MyBrilliantApp
Yang jauh lebih pendek dan jauh lebih kecil kemungkinannya untuk mengalami masalah jalur.
Namun ini tidak selalu mungkin. Terkadang proyek atau lingkungan memerlukan struktur folder yang mendalam. Mengaktifkan dukungan jalur panjang di Windows mungkin cukup untuk membuat proyek Anda berfungsi. Detail tentang cara melakukan ini dapat ditemukan di sini.
Jika dukungan jalur panjang tidak berfungsi mengubah lokasi $(BaseIntermediateOutputPath)
dapat membantu menyelesaikan masalah ini. Agar ini berfungsi, pengaturan HARUS diubah sebelum build atau pemulihan APA PUN terjadi. Untuk melakukan ini, Anda dapat menggunakan dukungan MSBuild Directory.Build.props
.
Membuat Directory.Build.props
file dalam solusi atau direktori proyek Anda yang mendefiniskan $(BaseIntermediateOutputPath)
ulang ke suatu tempat yang lebih dekat dengan akar drive dengan menyelesaikan masalah ini. Menambahkan file dengan konten berikut akan membuat obj
direktori di lokasi lain yang Anda pilih.
<Project>
<PropertyGroup>
<BaseIntermediateOutputPath Condition=" '$(OS)' == 'Windows_NT' ">C:\Intermediate\$(ProjectName)</BaseIntermediateOutputPath>
<BaseIntermediateOutputPath Condition=" '$(OS)' != 'Windows_NT' ">/tmp/Intermediate/$(ProjectName)</BaseIntermediateOutputPath>
</PropertyGroup>
</Project>
Menggunakan teknik ini akan mengurangi panjang jalur yang dikirim ke berbagai alat seperti aapt2
.
Perhatikan bahwa ini umumnya hanya masalah Windows. Jadi tidak perlu mengambil alih $(BaseIntermediateOutputPath)
lingkungan berbasis Mac atau Linux. Namun Anda mungkin ingin mengambil alih di mana saja agar konsisten.