Mah*_*asi 5 android attributes namespaces manifest android-manifest
我clearText在Android客户端和服务器using之间有一个应用用途Retrofit,并且Android 9+不允许使用clearText。
要忽略我android:usesCleartextTraffic="true"在Manifest其中添加的内容 ,但会发出警告: tools:ignore="GoogleAppIndexingWarning"并建议添加tools:targetApi="m"。
这有点令人困惑:
是tools:targetApi="m"意味着任何属性与tools:是棉花糖和更高?
是使用此版本的清单还是其他?这在我的应用程序中犯了不必要的错误吗?
我的清单:
...
<application
android:name=".ApplicationClass"
android:allowBackup="true"
android:fullBackupContent="false"
android:hardwareAccelerated="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="false"
android:theme="@style/AppTheme.NoActionBar"
android:usesCleartextTraffic="true"
tools:ignore="GoogleAppIndexingWarning"
tools:targetApi="m">
...
Run Code Online (Sandbox Code Playgroud)
Val*_*kov 20
通过添加tools:targetApi="m"到元素,您可以告诉lint该元素不会在低于 23 (M) 的 API 级别上使用。请参阅属性文档。
这告诉工具您认为该元素(以及任何子元素)将仅在指定的 API 级别或更高级别上使用。如果该元素或其属性在您指定为 minSdkVersion 的 API 级别上不可用,这将阻止 lint 向您发出警告。
在这种特殊情况下,<application>使用android:usesCleartextTraffic从 API 23 开始可用的属性,但应用程序minSdkVersion小于 23,因此 lint 会警告您。尽管tools:targetApi在这种情况下指定会删除警告,但它不是正确的解决方案,因为如果允许,<application>可以在较旧的 API 级别上使用。minSdkVersion但这样的技巧不会造成伤害,因为android:usesCleartextTraffic如果不支持,它将被忽略,请参阅此答案以获取更多详细信息。
一般来说,命名空间怎么样,它包含构建工具tools使用的属性,不会影响运行时行为。请参阅文档了解更多详细信息。
Android Studio 支持工具命名空间中的各种 XML 属性,这些属性启用设计时功能(例如在片段中显示哪种布局)或编译时行为(例如应用于 XML 资源的收缩模式)。当您构建应用程序时,构建工具会删除这些属性,因此不会影响您的 APK 大小或运行时行为。
Luc*_*tti 17
从文档中您可以阅读:
指示 Lint 应将此类型视为针对给定的 API 级别,无论项目目标是什么
这意味着它会影响只带注释的一个。
其他属性tools不受影响。tools是一个命名空间,你可以从中获取属性,一个属性不会影响整个命名空间。
| 归档时间: |
|
| 查看次数: |
1461 次 |
| 最近记录: |