Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Ukázková zpráva
error XA4258: Java name 'com.example.for' contains invalid or unsupported Java identifier 'for'. Change the package or type name.
Problém
Název balíčku nebo typu Java obsahuje neplatný identifikátor, klíčové slovo Java nebo identifikátor omezeného typu. Klasifikace identifikátorů v Javě vychází z dat Unicode 15.0 v Javě 21, takže se nemění v závislosti na modulu runtime .NET použitém k sestavení aplikace.
.NET pro Android vyžaduje názvy normalizačních formulářů C (NFC) a odmítá kombinování a formátování znaků, protože normalizace systémů souborů může měnit nebo slučovat generované Java zdrojové cesty. Doplňkové znaky jsou odmítnuty, protože zavaděč tříd Androidu nemůže rozpoznat třídy s doplňkovými znaky v jejich jednoduchém názvu, i když je v DEX přítomn přesný popisovač.
To může pocházet z vlastnosti MSBuild $(ApplicationId), atributu package v AndroidManifest.xml, názvu spravovaného typu nebo z explicitního názvu Java zadaného atributem, například [Register] nebo [JniTypeSignature].
Řešení
Použijte název NFC. Segmenty typu Java podporují v Java 21 znaky BMP povolené na začátku identifikátoru, včetně symbolů měny a spojovací interpunkce, a po prvním znaku také desetinné číslice. Segmenty balíčků a názvy typů součástí manifestu Androidu používají užší sadu písmen BMP, desetinné číslice za prvním znakem, podtržítka a znaky dolaru. Vyhněte se kombinování, formátování a doplňkových znaků. Žádný segment nesmí být klíčovým slovem jazyka Java; názvy typů se také musí vyhnout omezeným identifikátorům, jako je record.
Pro <activity-alias>, tyto omezení pro název typu platí pro android:targetActivity, nikoli android:name.
Název aliasu je libovolný identifikátor komponenty a neodkazuje na Java třídu.