繁体   English   中英

在 Cordova config.xml 中更改 Android 活动名称

[英]Changing Android activity name in Cordova config.xml

我有一个旧的 Android Cordova 应用程序,其清单具有<activity android:name=".MyActivity" 这已经发布到 Play 商店,所以我不能再更改名称

我正在尝试迁移到 Cordova CLI 工作流,但它生成的 Android 应用程序具有android:name="MainActivity" 如何在 config.xml 中自定义它,以便生成正确的名称?

我发现了一个未记录的偏好“android-activityName”。 我尝试将其设置为“.MyActivity”,并删除/添加 android 平台。 但是使用此设置,它根本不再创建活动类,并且出现错误“错误:未找到扩展 CordovaActivity 的 Java 文件”。

最近我也遇到了类似的情况。我所做的是更改了 config.xml中小部件标签的 id 以反映我放置扩展CordovaActivity 的MyActivity类的包名称。确保您已删除了不需要的MainActivity类,cordova生成(如果您将 MyActivity 类与 MainActivity 类放在同一个包中)。 而且您的 MyActivity 类应该扩展 CordovaActivity(重要) 。然后打开 config.xml 并更改小部件标记,如下所示。

//Change the id value to the package name where you put your MyActivity class
<widget id="com.yourCompanyName.yourPackageName" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">

执行此操作后,使用cordova clean命令清理项目,然后重建项目。此外,您可以使用android-packageName属性来为小部件标记提供android 特定的包名称和ios-CFBundleIdentifier为ios 特定名称。

我有一个类似的问题,这是我在 bash 中的解决方案。 我有错误的 Activity 名称和错误的 java 文件名,所以我需要更改两者。

我创建了以下bash函数:首先,我将所有MainActivity引用替换为NewActivityName 然后我查找java文件并重命名它。

function rename_the_activity {
    platformDir="/path/to/platformdir"
    grep -rl 'MainActivity' $platformDir | sort | uniq | xargs perl -e "s/MainActivity/NewActivityName/" -pi
    activity=$(find $platformDir -name 'MainActivity.java')
    newactivity="${activity/MainActivity/NewActivityName}"
    mv $activity $newactivity
    print_blue "Renamed activity class MainActivity to NewActivityName"
}

我已经使用cordova-custom-config插件处理过这个问题,将它添加到我的config.xml中:

<custom-preference name="android-manifest/application/activity/@android:name" value=".MyActivity" />

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM