AAPT:错误:未找到属性android:requestLegacyExternalStorage
AndroidManifest.xml中的集合错误AAPT:错误:未找到属性android:requestLegacyExternalStorage,android,ionic-framework,android-10.0,ionic5,Android,Ionic Framework,Android 10.0,Ionic5,AndroidManifest.xml中的集合错误 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="andro
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="android.apps">
<uses-feature android:name="android.hardware.wifi" android:required="false" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<application
android:allowBackup="true"
android:fullBackupContent="true"
android:icon="@mipmap/launcher_icon"
android:label="@string/app_name"
android:requestLegacyExternalStorage="true"
android:roundIcon="@mipmap/launcher_icon"
android:supportsRtl="true"
android:theme="@style/Theme.MaterialFiles"
tools:ignore="GoogleAppIndexingWarning,UnusedAttribute">
<activity
android:name="android.apps.filelist.FileListActivity"
android:label="@string/file_list_title"
android:theme="@style/Theme.MaterialFiles.TransparentStatusBar"
android:visibleToInstantApps="true"
tools:ignore="UnusedAttribute">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter tools:ignore="AppLinkUrlError">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="inode/directory" />
<data android:mimeType="resource/folder" />
<data android:mimeType="vnd.android.document/directory" />
</intent-filter>
<!-- @see android.apps.file.MimeTypes#isSupportedArchive(String) -->
<!--
~ We don't really support content URI archives.
~ TODO: Figure out a good way to allow choosing this activity only in our app, or
~ support content URI archives.
<intent-filter tools:ignore="AppLinkUrlError">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="application/gzip" />
<data android:mimeType="application/java-archive" />
<data android:mimeType="application/rar" />
<data android:mimeType="application/zip" />
<data android:mimeType="application/vnd.android.package-archive" />
<data android:mimeType="application/vnd.debian.binary-package" />
<data android:mimeType="application/x-7z-compressed" />
<data android:mimeType="application/x-bzip2" />
<data android:mimeType="application/x-compress" />
<data android:mimeType="application/x-cpio" />
<data android:mimeType="application/x-deb" />
<data android:mimeType="application/x-debian-package" />
<data android:mimeType="application/x-gtar" />
<data android:mimeType="application/x-gtar-compressed" />
<data android:mimeType="application/x-java-archive" />
<data android:mimeType="application/x-lzma" />
<data android:mimeType="application/x-tar" />
<data android:mimeType="application/x-xz" />
</intent-filter>
-->
<!-- @see https://android.googlesource.com/platform/packages/apps/DocumentsUI/+/master/AndroidManifest.xml -->
<intent-filter>
<action android:name="android.intent.action.OPEN_DOCUMENT" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.OPENABLE" />
<data android:mimeType="*/*" />
</intent-filter>
<!--
~ Unusable until we implement DocumentsProvider.
<intent-filter>
<action android:name="android.intent.action.CREATE_DOCUMENT" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.OPENABLE" />
<data android:mimeType="*/*" />
</intent-filter>
-->
<intent-filter>
<action android:name="android.intent.action.GET_CONTENT" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.OPENABLE" />
<data android:mimeType="*/*" />
</intent-filter>
<!--
~ Unusable until we implement DocumentsProvider.
<intent-filter>
<action android:name="android.intent.action.OPEN_DOCUMENT_TREE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
-->
<intent-filter>
<action android:name="android.apps.intent.action.VIEW_DOWNLOADS" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<meta-data
android:name="android.app.shortcuts"
android:resource="@xml/shortcuts" />
</activity>
<activity
android:name="android.apps.filelist.OpenFileAsDialogActivity"
android:autoRemoveFromRecents="true"
android:icon="@drawable/open_as_icon"
android:label="@string/file_open_as_title"
android:theme="@style/Theme.MaterialFiles.Translucent" />
<activity
android:name="android.apps.ftpserver.FtpServerActivity"
android:label="@string/ftp_server_title"
android:launchMode="singleTop"
android:theme="@style/Theme.MaterialFiles">
<intent-filter>
<action android:name="android.apps.intent.action.MANAGE_FTP_SERVER" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="android.apps.filelist.FileListActivity" />
</activity>
<activity
android:name="apps.settings.SettingsActivity"
android:label="@string/settings_title"
android:launchMode="singleTop"
android:theme="@style/Theme.MaterialFiles">
<intent-filter>
<action android:name="android.intent.action.APPLICATION_PREFERENCES" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="android.apps.filelist.FileListActivity" />
</activity>
<activity
android:name="android.apps.settings.StandardDirectoriesActivity"
android:label="@string/settings_standard_directories_title"
android:launchMode="singleTop"
android:theme="@style/Theme.MaterialFiles">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="android.apps.settings.SettingsActivity" />
</activity>
<activity
android:name="android.apps.settings.BookmarkDirectoriesActivity"
android:label="@string/settings_bookmark_directories_title"
android:launchMode="singleTop"
android:theme="@style/Theme.MaterialFiles">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="android.apps.settings.SettingsActivity" />
</activity>
<activity
android:name="android.apps.about.AboutActivity"
android:label="@string/about_title"
android:launchMode="singleTop"
android:theme="@style/Theme.MaterialFiles">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.filemanagere.android.apps.filelist.FileListActivity" />
</activity>
<activity
android:name="android.apps.filejob.FileJobActionDialogActivity"
android:autoRemoveFromRecents="true"
android:theme="@style/Theme.MaterialFiles.Translucent" />
<activity
android:name="android.apps.filejob.FileJobConflictDialogActivity"
android:autoRemoveFromRecents="true"
android:theme="@style/Theme.MaterialFiles.Translucent" />
<activity
android:name="android.apps.viewer.text.TextEditorActivity"
android:label="@string/text_editor_title"
android:theme="@style/Theme.MaterialFiles">
<intent-filter tools:ignore="AppLinkUrlError">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="application/ecmascript" />
<data android:mimeType="application/javascript" />
<data android:mimeType="application/json" />
<data android:mimeType="application/typescript" />
<data android:mimeType="application/x-sh" />
<data android:mimeType="application/x-shellscript" />
<data android:mimeType="application/xml" />
<data android:mimeType="text/*" />
</intent-filter>
</activity>
<activity
android:name="android.apps.viewer.image.ImageViewerActivity"
android:label="@string/image_viewer_title"
android:theme="@style/Theme.MaterialFiles.Immersive">
<intent-filter tools:ignore="AppLinkUrlError">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
</intent-filter>
</activity>
<service android:name="android.apps.filejob.FileJobService" />
<service android:name="android.apps.ftpserver.FtpServerService" />
<provider
android:name="android.apps.AppProvider"
android:authorities="@string/app_provider_authority"
android:exported="false" />
<provider
android:name="android.apps.file.FileProvider"
android:authorities="@string/file_provider_authority"
android:exported="false"
android:grantUriPermissions="true" />
<receiver android:name="android.apps.filejob.FileJobReceiver" />
<receiver android:name="android.apps.ftpserver.FtpServerReceiver" />
<meta-data
android:name="firebase_crashlytics_collection_enabled"
android:value="false" />
<!-- We need to reference a MD2 theme in XML for R8 to keep relevant resources. -->
<activity
android:name=".KeepMd2Resources"
android:theme="@style/Theme.MaterialFiles.Md2" />
</application>
AAPT:错误:未找到属性android:requestLegacyExternalStorage
虽然属性存在,但它写入了一个错误
My AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="android.apps">
<uses-feature android:name="android.hardware.wifi" android:required="false" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<application
android:allowBackup="true"
android:fullBackupContent="true"
android:icon="@mipmap/launcher_icon"
android:label="@string/app_name"
android:requestLegacyExternalStorage="true"
android:roundIcon="@mipmap/launcher_icon"
android:supportsRtl="true"
android:theme="@style/Theme.MaterialFiles"
tools:ignore="GoogleAppIndexingWarning,UnusedAttribute">
<activity
android:name="android.apps.filelist.FileListActivity"
android:label="@string/file_list_title"
android:theme="@style/Theme.MaterialFiles.TransparentStatusBar"
android:visibleToInstantApps="true"
tools:ignore="UnusedAttribute">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter tools:ignore="AppLinkUrlError">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="inode/directory" />
<data android:mimeType="resource/folder" />
<data android:mimeType="vnd.android.document/directory" />
</intent-filter>
<!-- @see android.apps.file.MimeTypes#isSupportedArchive(String) -->
<!--
~ We don't really support content URI archives.
~ TODO: Figure out a good way to allow choosing this activity only in our app, or
~ support content URI archives.
<intent-filter tools:ignore="AppLinkUrlError">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="application/gzip" />
<data android:mimeType="application/java-archive" />
<data android:mimeType="application/rar" />
<data android:mimeType="application/zip" />
<data android:mimeType="application/vnd.android.package-archive" />
<data android:mimeType="application/vnd.debian.binary-package" />
<data android:mimeType="application/x-7z-compressed" />
<data android:mimeType="application/x-bzip2" />
<data android:mimeType="application/x-compress" />
<data android:mimeType="application/x-cpio" />
<data android:mimeType="application/x-deb" />
<data android:mimeType="application/x-debian-package" />
<data android:mimeType="application/x-gtar" />
<data android:mimeType="application/x-gtar-compressed" />
<data android:mimeType="application/x-java-archive" />
<data android:mimeType="application/x-lzma" />
<data android:mimeType="application/x-tar" />
<data android:mimeType="application/x-xz" />
</intent-filter>
-->
<!-- @see https://android.googlesource.com/platform/packages/apps/DocumentsUI/+/master/AndroidManifest.xml -->
<intent-filter>
<action android:name="android.intent.action.OPEN_DOCUMENT" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.OPENABLE" />
<data android:mimeType="*/*" />
</intent-filter>
<!--
~ Unusable until we implement DocumentsProvider.
<intent-filter>
<action android:name="android.intent.action.CREATE_DOCUMENT" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.OPENABLE" />
<data android:mimeType="*/*" />
</intent-filter>
-->
<intent-filter>
<action android:name="android.intent.action.GET_CONTENT" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.OPENABLE" />
<data android:mimeType="*/*" />
</intent-filter>
<!--
~ Unusable until we implement DocumentsProvider.
<intent-filter>
<action android:name="android.intent.action.OPEN_DOCUMENT_TREE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
-->
<intent-filter>
<action android:name="android.apps.intent.action.VIEW_DOWNLOADS" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<meta-data
android:name="android.app.shortcuts"
android:resource="@xml/shortcuts" />
</activity>
<activity
android:name="android.apps.filelist.OpenFileAsDialogActivity"
android:autoRemoveFromRecents="true"
android:icon="@drawable/open_as_icon"
android:label="@string/file_open_as_title"
android:theme="@style/Theme.MaterialFiles.Translucent" />
<activity
android:name="android.apps.ftpserver.FtpServerActivity"
android:label="@string/ftp_server_title"
android:launchMode="singleTop"
android:theme="@style/Theme.MaterialFiles">
<intent-filter>
<action android:name="android.apps.intent.action.MANAGE_FTP_SERVER" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="android.apps.filelist.FileListActivity" />
</activity>
<activity
android:name="apps.settings.SettingsActivity"
android:label="@string/settings_title"
android:launchMode="singleTop"
android:theme="@style/Theme.MaterialFiles">
<intent-filter>
<action android:name="android.intent.action.APPLICATION_PREFERENCES" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="android.apps.filelist.FileListActivity" />
</activity>
<activity
android:name="android.apps.settings.StandardDirectoriesActivity"
android:label="@string/settings_standard_directories_title"
android:launchMode="singleTop"
android:theme="@style/Theme.MaterialFiles">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="android.apps.settings.SettingsActivity" />
</activity>
<activity
android:name="android.apps.settings.BookmarkDirectoriesActivity"
android:label="@string/settings_bookmark_directories_title"
android:launchMode="singleTop"
android:theme="@style/Theme.MaterialFiles">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="android.apps.settings.SettingsActivity" />
</activity>
<activity
android:name="android.apps.about.AboutActivity"
android:label="@string/about_title"
android:launchMode="singleTop"
android:theme="@style/Theme.MaterialFiles">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.filemanagere.android.apps.filelist.FileListActivity" />
</activity>
<activity
android:name="android.apps.filejob.FileJobActionDialogActivity"
android:autoRemoveFromRecents="true"
android:theme="@style/Theme.MaterialFiles.Translucent" />
<activity
android:name="android.apps.filejob.FileJobConflictDialogActivity"
android:autoRemoveFromRecents="true"
android:theme="@style/Theme.MaterialFiles.Translucent" />
<activity
android:name="android.apps.viewer.text.TextEditorActivity"
android:label="@string/text_editor_title"
android:theme="@style/Theme.MaterialFiles">
<intent-filter tools:ignore="AppLinkUrlError">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="application/ecmascript" />
<data android:mimeType="application/javascript" />
<data android:mimeType="application/json" />
<data android:mimeType="application/typescript" />
<data android:mimeType="application/x-sh" />
<data android:mimeType="application/x-shellscript" />
<data android:mimeType="application/xml" />
<data android:mimeType="text/*" />
</intent-filter>
</activity>
<activity
android:name="android.apps.viewer.image.ImageViewerActivity"
android:label="@string/image_viewer_title"
android:theme="@style/Theme.MaterialFiles.Immersive">
<intent-filter tools:ignore="AppLinkUrlError">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
</intent-filter>
</activity>
<service android:name="android.apps.filejob.FileJobService" />
<service android:name="android.apps.ftpserver.FtpServerService" />
<provider
android:name="android.apps.AppProvider"
android:authorities="@string/app_provider_authority"
android:exported="false" />
<provider
android:name="android.apps.file.FileProvider"
android:authorities="@string/file_provider_authority"
android:exported="false"
android:grantUriPermissions="true" />
<receiver android:name="android.apps.filejob.FileJobReceiver" />
<receiver android:name="android.apps.ftpserver.FtpServerReceiver" />
<meta-data
android:name="firebase_crashlytics_collection_enabled"
android:value="false" />
<!-- We need to reference a MD2 theme in XML for R8 to keep relevant resources. -->
<activity
android:name=".KeepMd2Resources"
android:theme="@style/Theme.MaterialFiles.Md2" />
</application>
(此处是材料文件Aurtor)
您需要根据SDK 29进行编译,可能需要使用最新的aapt构建工具来了解此属性,因为它是在Android 10中引入的。只需删除lineAndroid:requestLegacyExternalStorage=“true”
。您可以在Api 29下使用。将此添加到build.gradle
subprojects {
afterEvaluate {project ->
if (project.hasProperty("android")) {
android {
compileSdkVersion 29
buildToolsVersion "29.0.2"
}
}
}
}
在android\app\build.gradle中进行以下更改:
compileSdkVersion 29
targetSdkVersion 29
如果您试图删除android:requestLegacyExternalStorage=“true”
,或者在还原生成后更改android:minSdkVersion=“xx”和android:targetSdkVersion=“xx”
的值,但是AndroidManifest.xml的话,它将起作用。。。。您应该尝试使用参数进行编译。在我的情况下(8)
tns构建android--compileSdk--force
听起来可能很傻,但您需要为所有项目应用CompileSDK版本和TargetSDK版本(例如,您编译的依赖项):
android{
编译DK29版
默认配置{
明斯克版本21
targetSdkVersion 29
...
}
对于构建Nativescript 7项目,我的解决方案是:
28、29和30 API
/app\u Resources/Android
中的app.gradle
文件,如下所示:
ns clean
ns调试android
对于爱奥尼亚开发者,请确保将cordova更新至最新版本:
npm i cordova
,然后添加android平台:爱奥尼亚cordova平台添加android@9.0.0
还要确保将这些添加到config.mxl
:
<preference name="android-minSdkVersion" value="22" />
<preference name="android-compileSdkVersion" value="29" />
<preference name="android-targetSdkVersion" value="29" />
注意:
SDK v22意味着低于5.1的android版本将无法安装该应用程序,因为公司通常将最低SDK版本指定为19,以支持所有设备
我们不能在v22之前的SDK上请求LegacyExternalStorage
为了克服这个问题,我们必须在运行android 10+的设备上运行时添加此权限
使用此插件获取当前设备的SDK版本:
如果SDK版本为10或以上,请使用此插件请求权限:
对我来说,解决方案是:
npm i cordova
你能详细说明一下吗?我正在使用它,但它仍然失败:buildToolsVersion=“29.0.0”minSdkVersion=21 compileSdkVersion=28 targetSdkVersion=28 supportLibVersion=“28.0.0”googlePlayServicesAuthVersion=“16.0.1”你还需要根据29进行编译。谢谢!使用这些值:buildToolsVersion=“29.0.0”minSdkVersion=21编译dkversion=29 targetSdkVersion=29 supportLibVersion=“28.0.0”googlePlayServicesAuthVersion=“16.0.1"不只是爱奥尼亚,这也适用于React-NativeIt没有任何意义你在使用哪个框架。它有意义你在使用哪个平台。这适用于Android平台。即使你在使用爱奥尼亚、弗利特或React-NativeHanks进行澄清,我也为Android平台提供了一个通用答案这也适用于弗利特ile此链接可以回答问题,最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,则仅链接的答案可能无效-