Cordova - modify or remove MainActivity
There are two possible solutions to this:
1. Use a hook to modify MainActivity
Use a hook to copy a custom MainActivity.java
into platforms/android/src/[packageName]/
and override the default Cordova MainActivity
.
For example, a before_build
hook can be added to <platform name="android">
section of the config.xml
like this:
<hook type="before_build" src="scripts/updateMainActivity.sh" />
Where scripts/updateMainActivity.sh
is:
#!/bin/bash
cp MainActivity.java platforms/android/src/[packageName]/
(You can also write hooks with nodeJS, which is good for cross-platform compatibility)
2. Use cordova-custom-config to remove MainActivity
With cordova-custom-config, all you need to do is add the following to the <platform name="android">
section of your config.xml:
<preference name="android-manifest/application/activity[@android:name='MainActivity']" delete="true" />
Note: You will need cordova-custom-config >= 3.0.0.
This is the solution I went with, since I am already using cordova-custom-config.
If you want to modify an activity's entry in the Manifest.xml, you can do so from the plugin's plugin.xml file.
<edit-config file="AndroidManifest.xml" target="/manifest/application/activity[@android:name='MainActivity']" mode="overwrite">
<activity android:name="MainActivity" android:label="NewLabel" android:configChanges="orientation|keyboardHidden" />
</edit-config>
With this,you can remove the MainActivity's entry or change it so that it's not longer the launcher activity for the app.
Source