Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Mensagem de exemplo
error XA4258: Java name 'com.example.for' contains invalid or unsupported Java identifier 'for'. Change the package or type name.
Issue
Um Java pacote ou nome de tipo contém um identificador inválido, uma palavra-chave Java ou um identificador de tipo restrito. A classificação de identificadores Java segue os dados do Unicode 15.0 do Java 21, de modo que não varia conforme o runtime do .NET usado para compilar o aplicativo.
O .NET para Android requer nomes na Forma de Normalização C (NFC) e rejeita caracteres combinantes e de formatação, pois sistemas de arquivos com normalização podem alterar ou mesclar caminhos gerados do código-fonte Java. Caracteres complementares são rejeitados porque o carregador de classe do Android não pode resolver classes com caracteres suplementares em seu nome simples, mesmo quando o descritor exato está presente no DEX.
Isso pode ter origem na propriedade MSBuild $(ApplicationId), no atributo package em AndroidManifest.xml, em um nome de tipo gerenciado ou em um nome Java explícito fornecido por um atributo como [Register] ou [JniTypeSignature].
Solução
Use um nome NFC. Os segmentos de tipo Java oferecem suporte a caracteres iniciais de identificadores BMP do Java 21, incluindo símbolos monetários e pontuação conectiva, bem como dígitos decimais após o primeiro caractere. Os segmentos do pacote e os nomes de tipos de componentes no manifesto do Android usam o conjunto mais restrito compatível com o Android de letras BMP, os dígitos decimais após o primeiro caractere, sublinhados e sinais de dólar. Evite caracteres combinantes, de formatação e suplementares. Nenhum segmento pode ser uma palavra-chave Java; os nomes de tipo também devem evitar identificadores restritos, como record.
Para <activity-alias>, essas restrições de nome de tipo se aplicam a android:targetActivity, não android:name. O nome do alias é um identificador de componente arbitrário e não se refere a uma classe Java.