2017-03-08 46 views
0

我正在使用groovy生成部分清单,其中包含来自我的构建配置文件的应用程序链接的意图过滤器声明。在apk中找到的合并清单看起来和预期一样,但有一个问题:即使在build.gradle中设置属性android:debuggable也会被删除。如果我删除部分清单并重建apk,android:debuggable="true"将按预期设置。Android清单合并删除属性

我的主要表现是这样的:

<manifest package="com.app.myapp" 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:tools="http://schemas.android.com/tools" 
     android:installLocation="auto"> 

     <application 
     android:name="MyApp" 
     tools:replace="android:theme, android:label, android:allowBackup"> 

     </application> 
</manifest> 

和我产生局部表现的样子:

<?xml version="1.0" encoding="utf-8"?> 
<manifest package="com.app.myapp" xmlns:android="http://schemas.android.com/apk/res/android"> 
     <application 
       android:name="MyApp"> 
       <activity android:name=".activity.MyActivity"> 
         <intent-filter android:autoVerify="true"> 
           <action android:name="android.intent.action.VIEW"/> 
           <category android:name="android.intent.category.BROWSABLE"/> 
           <category android:name="android.intent.category.DEFAULT"/> 

         </intent-filter> 
       </activity> 
     </application> 
</manifest> 

build.gradle文件debuggable true设置。

属性android:debuggable从apk中找到的合并清单中被丢弃,我该怎么做才能确保它在没有添加到部分清单中的情况下正确设置(我不知道它在gradle同步时的时间脚本运行并且不想将其硬编码为真)?

回答

0

删除部分清单文件的application节点中的android:name属性后,合并正确发生。

的部分清单,工程:

<?xml version="1.0" encoding="utf-8"?> 
<manifest package="com.app.myapp" xmlns:android="http://schemas.android.com/apk/res/android"> 
     <application> 
       <activity android:name=".activity.MyActivity"> 
         <intent-filter android:autoVerify="true"> 
           <action android:name="android.intent.action.VIEW"/> 
           <category android:name="android.intent.category.BROWSABLE"/> 
           <category android:name="android.intent.category.DEFAULT"/> 

         </intent-filter> 
       </activity> 
     </application> 
</manifest>