Android 使用 activity-alias 时构建失败

Android build fails when using activity-alias

添加 activity 别名后,构建失败:

error: attribute 'android:name' in <activity-alias> tag must be a valid Java class name.

即使 Android 开发人员文档说,该名称也没有引用实际的 class。

android:name

A unique name for the alias. The name should resemble a fully qualified class name. But, unlike the name of the target activity, the alias name is arbitrary; it does not refer to an actual class.

这是我的 activity 声明:

...

<activity android:name=".MainActivity" />

<activity-alias
    android:name="MainActivity-2"
    android:targetActivity=".MainActivity"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity-alias>

...

这里很清楚,我们可以为别名选择任何唯一名称,但不清楚的是唯一名称应该是有效的 class 名称(即名称不应包含“-”,space, 特殊字符等).

这就是您在构建应用程序时遇到错误 (error: attribute 'android:name' in <activity-alias> tag must be a valid Java class name.) 的原因。