注意:请不要将此“android.enableapt2=false”作为回答。这不是一个解决办法。它只是忽略了真正的错误,这不会在运行时造成任何问题。
解决方案很简单,只是在清单文件中删除了错误放置在意图过滤器外部的操作标记。
有一个由Android Studio 2.3构建的应用程序。更新Android Studio 3.0 Stable后,开始出现此错误,无法构建我的项目。
我的manifest.xml
<application
android:name=".ApplicationClass"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:largeHeap="true"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<!--other unrelated stuff-->
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<receiver
android:name="com.google.android.gms.gcm.GcmReceiver"
android:exported="true"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="com.xxx.xxx" />
</intent-filter>
</receiver>
</application>
错误显示以下行:
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
如果我评论/删除此操作标记行,则项目构建正常,但对于GCM
是必要的,我无法删除它。
正如您在日志中看到的,错误不是出现在主清单文件中,而是出现在/build/intermediates/manifests/full/debug/Android manifest . XML中
尝试清理,重建,禁用即时运行。有什么解决办法吗?
错误日志:
/THE_PROJECT_PATH/app/build/intermediates/manifests/full/debug/AndroidManifest.xml
Error:(99) error: unknown element <action> found.
Error:(99) unknown element <action> 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
Information:BUILD FAILED in 1s
Information:6 errors
Information:0 warnings
Information:See complete output in console
根据清单文件结构,将操作内容放入如下意图过滤器中。
<intent-filter>
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
</intent-filter>
在根项目中gradle.properties添加此代码:
android.enableAapt2=false
这对我很有效
root
|
|--gradle.properties
你的标签放错地方了。新的AAPT(AAPT2)现在对此抛出一个错误。
从这里的文档:https://developer . Android . com/studio/build/grad le-plugin-3-0-0-migration . html
为了改善增量资源处理,Android插件3.0.0默认启用AAPT2。虽然AAPT2应该立即与旧项目一起工作,但是本节描述了一些您应该知道的行为变化。
在以前版本的 AAPT 中,嵌套在 Android 清单中不正确节点中的元素要么被忽略,要么会导致警告。例如,请考虑以下示例:
<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>
以前版本的AAPT会简单地忽略放错位置的标签。但是,对于AAPT2,您会得到以下错误:
AndroidManifest.xml:15: error: unknown element <action> found.
若要解决此问题,请确保您的清单元素正确嵌套。有关详细信息,请阅读清单文件结构。
我正在使用代码欺骗TDD开发一个简单的PHP应用程序。我用一个简单的断言创建了我的第一个单元测试DogTest.php,但是它抱怨找不到Dog类。 我在根目录中创建了一个Dog.php文件,并将其放在/src下,但两者都不起作用。我认为这要么是名称空间问题,要么是自动加载问题,但是Codeception文档(以及我看过的各种TDD指南)缺少这个重要的细节。 有人能告诉我如何让我的狗测试来检测狗类吗
环境Chrome:版本39.0.2171.95 Chrome Driver:2.13(最新)Selenium WebDriver
我使用selenium IDE 1.9.0记录测试。请告诉我什么地方没有错,以及如何解决问题。 以下是我记录测试的步骤。1.我使用用户名和密码登录网站。2.我导航到搜索成员页面,输入成员的姓名,单击名称链接。系统将引导我进入成员配置文件页面。 脚本停在这一行: 我第一次玩脚本时,它运行没有任何错误。在运行该脚本8小时后,它提示我以下错误: 我使用调试函数来查看出了什么问题。以下是调试窗格中显示的消
好的,我正在制作一个项目,该项目将使用我的localhost从应用程序中测试出用户名和密码。我收到了AndroidM的错误消息anifest.xml.它说: 错误:找到未知元素[用户权限]。找到未知元素[用户权限]。 错误:java.util.concurrent.执行异常:java.util.concurrent.执行异常:com.android.tools.aapt2. Aapt2Except
我正在android模拟器中运行我的flutter项目。我正面临以下错误。附屏幕截图。 但是,我可以在相应的文件路径中看到< code>AndroidManifest.xml文件。
问题内容: 我收到以下错误: 这是我的persistence.xml文件: 这是我的persistenceLayer.xml: persistence.xml位于src / META-INF中,该文件位于构建路径中,因此应正确找到它。谁有想法? 问题答案: 好吧,我通常将persistence.xml放在资源文件夹/src/main/resouces/META- INF/persistence.x