更新到Android 3.0.0后,我的Android清单充满了错误 [英] My Android manifest is full of errors after updating to Android 3.0.0
问题描述
在更新到Android 3.0.0并将gradle更新到4.1后,我严重陷入困境。我的应用程序没有构建,清单包含很多错误。我尝试在 Build
下清理项目,在 Files
下使缓存/重启失效,但没有成功。
I'm badly stuck after updating to Android 3.0.0 and gradle update to 4.1. My app is not building and the manifest contains a lot of errors. I tried cleaning the project under Build
, invalidate caches/restart under Files
, without success.
我收到的错误如下:
错误:(52)错误:找到未知元素。
错误:(52)找到未知元素。
错误:java.util.concurrent.ExecutionException:java.util.concurrent.ExecutionException:com.android.tools.aapt2.Aapt2Exception :AAPT2错误:检查日志以获取详细信息
错误:java.util.concurrent.ExecutionException:com.android.tools.aapt2.Aapt2Exception:AAPT2错误:检查日志以获取详细信息
错误:com.android.tools.aapt2.Aapt2Exception:AAPT2错误:检查日志以获取详细信息
错误:任务执行失败':app:processDebugResources'。
执行aapt失败
Error:(52) error: unknown element found.
Error:(52) unknown element found.
Error:java.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:Execution failed for task ':app:processDebugResources'.
Failed to execute aapt
所有错误都在 debug\AndroidManifest
中。当我删除或评论标记的活动时,它们会被重新添加到gradle构建中,
All errors are in debug\AndroidManifest
. When I delete or comment the marked activities, they're getting added back on gradle build,
我也在使用<$ c获得'URI notregistrered错误$ c> android =http://schemas.android.com/apk/res/android'
清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="sample.app"
android:installLocation="auto"
android:versionCode="48"
android:versionName="4.8" >
<uses-sdk
android:minSdkVersion="19"
android:targetSdkVersion="25" />
//Hardware Constraints for Application
<uses-feature android:name="android.hardware.location.gps" />
<!-- <uses-feature android:name="android.hardware.location.network" /> -->
//Required App Permissions
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.READ_CALL_LOG" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
<uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.CAPTURE_AUDIO_OUTPUT" />
<uses-permission-sdk-23 android:name="android.permission.MODIFY_PHONE_STATE" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<meta-data
android:name="android.support.VERSION"
android:value="25.3.1" />
<activity android:name="com.box.androidsdk.content.auth.OAuthActivity" />
<uses-feature
android:name="android.hardware.sensor.accelerometer"
android:required="true" /> <!-- Permissions required for GCM -->
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<permission
android:name="sample.app.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="sample.app.permission.C2D_MESSAGE" />
<!--
<uses-feature
android:name="android.hardware.camera2.full"
android:required="true" />
-->
<!--
<uses-feature
android:name="android.hardware.sensor.accelerometer"
android:required="true" />
-->
<application
android:name="sample.app.dailymotion.volleyapp.AppController"
android:allowBackup="true"
android:debuggable="true"
android:hardwareAccelerated="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:largeHeap="true"
android:supportsRtl="true"
android:theme="@style/AppTheme" >
<!--
<meta-data
android:name="com.google.android.gms.vision.DEPENDENCIES"
android:value="barcode"/>
-->
<activity android:name="sample.app.SplashScreen" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="sample.app.ClrInfo"
android:exported="false"
android:theme="@style/MyDialogTheme" />
</application>
</manifest>
推荐答案
这里提到的有关迁移指南的Android文档:< a href =https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html\"rel =noreferrer> https://developer.android.com/studio/ build / gradle-plugin-3-0-0-migration.html
The Android docs mentioned about the migration guide here : https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html
Android清单中的元素层次结构
在以前版本的AAPT中,嵌套在
中错误节点中的元素会被忽略或导致警告。对于
示例,请考虑以下示例:
In previous versions of AAPT, elements nested in incorrect nodes in the Android manifest are either ignored or result in a warning. For example, consider the following sample:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myname.myapplication">
<application
...
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<action android:name="android.intent.action.CUSTOM" />
</activity>
</application>
</manifest>
请注意,如果您真的遵守了清单,则必须检查清单他们提供的特定嵌套规则,否则你的应用程序不会编译。
Note that you must check your Manifest if you really comply to the specific nesting rule they provided otherwise your app wont compile.
清单文件结构
下面的代码片段显示了清单
文件的一般结构以及它可以包含的每个元素。每个元素以及
的所有属性都在一个单独的文件中完整记录。
The code snippet below shows the general structure of the manifest file and every element that it can contain. Each element, along with all of its attributes, is fully documented in a separate file.
<manifest>
<uses-permission />
<permission />
<permission-tree />
<permission-group />
<instrumentation />
<uses-sdk />
<uses-configuration />
<uses-feature />
<supports-screens />
<compatible-screens />
<supports-gl-texture />
<application>
<activity>
<intent-filter>
<action />
<category />
<data />
</intent-filter>
<meta-data />
</activity>
<activity-alias>
<intent-filter> . . . </intent-filter>
<meta-data />
</activity-alias>
<service>
<intent-filter> . . . </intent-filter>
<meta-data/>
</service>
<receiver>
<intent-filter> . . . </intent-filter>
<meta-data />
</receiver>
<provider>
<grant-uri-permission />
<meta-data />
<path-permission />
</provider>
<uses-library />
</application>
</manifest>
在您的情况下,您必须转移
In your case you must transfer your
< activity android:name =com.box.androidsdk.content.auth.OAuthActivity/>
在< application>
内,以便编译。
禁用AAPT2只是一种解决方法,但不是真正的答案。
这篇关于更新到Android 3.0.0后,我的Android清单充满了错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!