我有一个旧的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;。
答案 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" />