附:android.support.v4.content.FileProvider的配置问题
<h3>附:android.support.v4.content.FileProvider的配置问题</h3>
<h4>1. 文件兼容</h4>
<p>如果您打包 App 时的 targetSdkVersion >= 24
为了让 SDK 能够正常下载、安装 App 类广告,必须按照下面的步骤做兼容性处理。</p>
<p>依赖support库以支持FileProvider,且依赖库的大版本号必须大于等于24(尽量用更新版本的依赖库,例如:28.0.0),以保证支持tag : external-cache-path。
在 AndroidManifest.xml 中的 Application 标签中添加 provider 标签</p>
<pre><code class="language-java">
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="${applicationId}.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/gdt_file_path" />
</provider></code></pre>
<p>需要注意的是 provider 的 authorities 值为 ${applicationId}.fileprovider,对于每一个开发者而言,这个值都是不同的,${applicationId} 在代码中和 Context.getPackageName() 值相等,是应用的唯一 id。
例如 Demo 示例工程中的 applicationId 为 "com.qq.e.union.demo"。</p>
<h4>2.接入检查</h4>
<p>此步骤用于您进行接入的自我检查,检查优量汇 SDK AAR文件中的配置和资源是否正确应用到您的项目中</p>
<p>检查您的构建产物中优量汇 SDK AAR文件中manifest配置被正确merge</p>
<pre><code class="language-java">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<application android:usesCleartextTraffic="true" >
<uses-library
android:name="org.apache.http.legacy"
android:required="false" />
<!-- 声明SDK所需要的组件 -->
<service
android:name="com.qq.e.comm.DownloadService"
android:exported="false" />
<!-- 请开发者注意字母的大小写,ADActivity,而不是AdActivity -->
<activity
android:name="com.qq.e.ads.ADActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize" />
<activity
android:name="com.qq.e.ads.PortraitADActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name="com.qq.e.ads.LandscapeADActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:screenOrientation="landscape" />
</application></code></pre>
<p>检查您的构建产物中优量汇 SDK AAR文件中资源文件被正确应用,资源文件包括:</p>
<p>/assets/gdt_plugin/gdtadv2.jar
以gdt_ic为前缀的drawable资源
/res/xml/gdt_file_path.xml文件,文件内容如下</p>
<pre><code class="language-java"><paths>
<!-- 这个下载路径也不可以修改,必须为GDTDOWNLOAD -->
<external-cache-path
name="gdt_sdk_download_path1"
path="com_qq_e_download" />
<cache-path
name="gdt_sdk_download_path2"
path="com_qq_e_download" />
</paths></code></pre>
<p>检查您的构建产物中优量汇 SDK AAR文件中的proguard配置被正确应用
proguard配置位于优量汇 SDK AAR文件中"/proguard.txt",您可以通过check混淆后的您的mapping文件来判断这些配置是否生效。
比如,您可以check包名com.qq.e下类的public和protected成员是否被keep来验证优量汇 SDK AAR文件中的proguard配置被正确应用。</p>