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.
Voorbeeldbericht
error XA4258: Java name 'com.example.for' contains invalid or unsupported Java identifier 'for'. Change the package or type name.
Issue
Een Java pakket- of typenaam bevat een ongeldige id, een Java trefwoord of een beperkte type-id. Java id-classificatie volgt Java Unicode 15.0-gegevens van 21, zodat deze niet verschilt van de .NET runtime die wordt gebruikt om de app te bouwen.
.NET voor Android vereist NFC-namen (Normalization Form C) en weigert combinaties en notatietekens, omdat het normaliseren van bestandssystemen gegenereerde Java bronpaden kan wijzigen of samenvoegen. Aanvullende tekens worden geweigerd omdat het klassenlaadprogramma van Android klassen met aanvullende tekens in hun eenvoudige naam niet kan oplossen, zelfs als de exacte descriptor aanwezig is in DEX.
Dit kan afkomstig zijn van de $(ApplicationId) eigenschap MSBuild, het package kenmerk inAndroidManifest.xml, een naam van een beheerd type of een expliciete Java naam die is opgegeven door een kenmerk, zoals [Register] of[JniTypeSignature].
Solution
Gebruik een NFC-naam. Java-typesegmenten ondersteunen Java 21-BMP-identificatiestarttekens, waaronder valutasymbolen en verbindingsleestekens, en decimale cijfers na het eerste teken. Pakketsegmenten en namen van componenttypen in het Android-manifest gebruiken de beperktere, met Android compatibele set van BMP-letters, decimale cijfers na het eerste teken, onderstrepingstekens en dollartekens. Vermijd combinatie-, opmaak- en aanvullende tekens. Geen enkel segment mag een Java-trefwoord zijn; typenamen moeten ook gereserveerde aanduidingen zoals record vermijden.
Voor <activity-alias> zijn deze beperkingen voor typenamen van toepassing op android:targetActivity, niet op android:name. De aliasnaam is een willekeurige onderdeel-id en verwijst niet naar een Java-klasse.