我正在编写gradle脚本,我需要在此脚本中修改androidManifest。
我不知道该怎么做,我需要在此 list 中更改2个属性。
我试图将regEx与ant.replaceregexp一起使用,但是我无法编写regEx来仅替换 Activity 节点的android:name。
有没有更好的方法可以修改它?
也许我可以使用XML解析器,但是之后我不知道如何写文件。
在这里您可以找到我的 list :
<?xml version='1.0' encoding='utf-8'?>
<manifest android:hardwareAccelerated="true" android:versionCode="10402" android:versionName="1.4.2" android:windowSoftInputMode="adjustPan" package="com.yyyyyy.xxxxxx" xmlns:android="http://schemas.android.com/apk/res/android">
<supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" />
<uses-permission android:name="android.permission.INTERNET" />
<application android:debuggable="true" android:hardwareAccelerated="true" android:icon="@drawable/icon" android:label="@string/app_name">
<!--GradleActivity--><activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" android:label="@string/app_name" android:launchMode="singleTop" android:name="xxxxxx" android:screenOrientation="portrait" android:theme="@android:style/Theme.Black.NoTitleBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service android:name="com.yyyyyy.xxxxxx.TrackingService">
</service>
<receiver android:name="com.yyyyyy.xxxxxx.BootCompletedIntentReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
<activity android:exported="true" android:name="com.plugin.gcm.PushHandlerActivity" />
<receiver android:name="com.plugin.gcm.CordovaGCMBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="com.yyyyyy.xxxxxx" />
</intent-filter>
</receiver>
<service android:name="com.plugin.gcm.GCMIntentService" />
</application>
<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="18" />
<uses-feature android:name="android.hardware.telephony" android:required="false" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.PREVENT_POWER_KEY" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<permission android:name="com.yyyyyy.xxxxxx.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="com.yyyyyy.xxxxxx.permission.C2D_MESSAGE" />
</manifest>
我想将“< Activity > => android:name = xxxxx”属性更改为“< Activity > => android:name = zzzzzzz”
谢谢。
最佳答案
您可以将此正则表达式与组一起使用:
/(<activity.*android:name=")(\w+)(.*">)/gm
而这种替代:
\1zzzzz\3
链接:
https://regex101.com/r/vI7sK3/5
关于android - Gradle脚本XML转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32483241/