Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Mensaje de ejemplo
error XA4258: Java name 'com.example.for' contains invalid or unsupported Java identifier 'for'. Change the package or type name.
Issue
Un Java paquete o nombre de tipo contiene un identificador no válido, una palabra clave Java o un identificador de tipo restringido. La clasificación de identificadores de Java sigue los datos de Unicode 15.0 de Java 21, por lo que no varía según el entorno de ejecución de .NET utilizado para compilar la aplicación.
.NET para Android requiere nombres en Forma de normalización C (NFC) y rechaza los caracteres combinantes y de formato porque los sistemas de archivos que normalizan pueden cambiar o fusionar las rutas de código fuente Java generadas. Se rechazan caracteres adicionales porque el cargador de clases de Android no puede resolver clases con caracteres adicionales en su nombre simple, incluso cuando el descriptor exacto está presente en DEX.
Esto puede originarse en la $(ApplicationId) propiedad MSBuild, el package atributo de AndroidManifest.xml, un nombre de tipo administrado o un nombre de Java explícito proporcionado por un atributo como [Register] o [JniTypeSignature].
Solution
Use un nombre NFC. Los segmentos de tipo de Java admiten los caracteres iniciales de identificador BMP de Java 21, incluidos los símbolos de moneda y los signos de puntuación conectores, además de dígitos decimales después del primer carácter. Los segmentos del paquete y los nombres de tipo de componente del manifiesto de Android usan el conjunto más restringido, compatible con Android, de letras BMP, dígitos decimales a partir del segundo carácter, guiones bajos y signos de dólar. Evita los caracteres combinados, de formato y suplementarios. Ningún segmento puede ser una palabra clave Java; los nombres de tipo también deben evitar identificadores restringidos, como record.
Para <activity-alias>, estas restricciones de nombre de tipo se aplican a android:targetActivity, no android:namea . El nombre del alias es un identificador de componente arbitrario y no hace referencia a una clase Java.