更新到Android 3.0.0后,我的Android清单充满了错误 [英] My Android manifest is full of errors after updating to Android 3.0.0

查看:82
本文介绍了更新到Android 3.0.0后,我的Android清单充满了错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在更新到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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆