Kar*_*ela 15 action build intentfilter gradle android-manifest
所以我试图使用gradle来创建一个单独的buildType,但是buildType需要为同一个Activity使用不同的特性.在这种情况下,我的splash活动需要一个不同的intent-filter,具体取决于buildType.这可能吗?
我在gradle中收到以下错误:
:Tinder:processUtestManifest
[AndroidManifest.xml:67, AndroidManifest.xml:38] Trying to merge incompatible /manifest/application/activity[@name=com.<company_name>.activities.ActivitySplash] element:
<activity
@android:name="com.<company_name>.activities.ActivitySplash"
<intent-filter>
<action
-- @android:name="android.intent.action.MAIN">
<activity
@android:name="com.<company_name>.activities.ActivitySplash"
<intent-filter>
<action
++ @android:name="com.apphance.android.LAUNCH">
Run Code Online (Sandbox Code Playgroud)
Xav*_*het 11
目前无法单独合并intent-filter,因此我建议将整个<activity>节点复制到
src/buildtype1/AndroidManifest.xml
Run Code Online (Sandbox Code Playgroud)
和
src/buildtype2/AndroidManifest.xml
Run Code Online (Sandbox Code Playgroud)
它会自动合并到最终的清单中(当然你也想从主清单中删除它).
让我发布一个有效的完整解决方案.在这种情况下,应用程序管理图像和视频的意图过滤器.但是,对于特定风味,我们只想捕捉视频,而不是图像.
假设您的活动定义如下:
<activity
android:name=".MainActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:label="@string/app_name"
android:launchMode="singleTop"
android:screenOrientation="landscape"
android:theme="@style/CameraTheme">
<intent-filter>
<action android:name="android.media.action.IMAGE_CAPTURE"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
<intent-filter>
<action android:name="android.media.action.VIDEO_CAPTURE"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
对于你的名为myFlavor的味道,我假设你已经拥有了,你必须在你的AndroidManifest.xml文件中有这个:
<!-- Remove the intent filter for images. MyFlavor is only for videos. -->
<activity
android:name="com.androidsx.heliumvideochanger.MainActivity"
tools:node="merge">
<intent-filter tools:node="remove">
<action android:name="android.media.action.IMAGE_CAPTURE"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
与Gradle同步,并检查通常在的最终清单 myApp/build/intermediates/manifests/full/myFlavor/debug/AndroidManifest.xml
| 归档时间: |
|
| 查看次数: |
11053 次 |
| 最近记录: |