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

时间:2016-03-16 23:38:04

标签: android cordova android-activity

我有一个旧的Android Cordova应用,其清单有<activity android:name=".MyActivity"。这已经发布到Play商店,所以我can no longer change the name

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

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

3 个答案:

答案 0 :(得分:0)

最近我也遇到了类似的情况。我做的是我更改了config.xml中widget标记的id以反映我在 MyActivity 类中扩展的包名称CordovaActivity 。确保您删除了cordova生成的不需要的 MainActivity 类(如果您将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 属性来使用widget标记来获取特定于android的包名称和ios特定名称的 ios-CFBundleIdentifier

答案 1 :(得分:0)

我有类似的问题,这是我在bash中的解决方案。我有错误的活动名称和错误的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"
}

答案 2 :(得分:0)

我已经使用cordova-custom-config插件来处理此问题,并将其添加到我的config.xml中:

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