Articles of aapt

org.gradle.api.tasks.TaskExecutionException:仅在Jenkins上执行任务':mergeDevOnlySlDebugResources'的执行失败

当我使用Android Studio 3.0 Beta 7并使用Android Gradle 3.0.0-beta7插件更新我的项目时,我的项目在debugging和rc(启用proguard)变体中均可以正常工作。 当我试图build立我的jenkins盒子时,我得到了一堆: C:\Windows\System32\config\systemprofile\.gradle\caches\transforms-1\files-1.1\androidsdk-2.4.12-fullRelease.aar\222313e24d6c4b00972b4191a95e6e2e\res\drawable-xxhdpi-v4\ic_teads_sdk_contact_us.png: error: file not found. C:\Windows\System32\config\systemprofile\.gradle\caches\transforms-1\files-1.1\appcompat-v7-25.3.1.aar\c8fedf0a28e83c9ac57e1ac18693c6a0\res\drawable-hdpi-v4\abc_tab_indicator_mtrl_alpha.9.png: error: file not found. C:\Windows\System32\config\systemprofile\.gradle\caches\transforms-1\files-1.1\android-sdk-ui-2.0.4.aar\0b51ce1d665e491601444168a26000ca\res\drawable-xhdpi-v4\com_appboy_inappmessage_chevron.png: error: file not found. 什么地方出了错: Execution failed for task ':mergeDevOnlySlDebugResources'. Error: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details 我试图使用AAPT而不是AAPT2,这仍然给我同样的问题。 我的其他jenkins项目没有运行这个gradle 3更改仍然运行良好。 此外,从上面找不到的文件确实在我的机器上的AAPT无法find的位置。 有没有人遇到过这个? 我已经看到错误的在线关于无效的PNG或使用新的AAPT2的实际错误,但这是不同的。

Android Studio 3.0,AAPT2编译失败 – 资源文件中的无效维度

我在Arch Linux上使用Android Studio 3.0 Canary 3,我正在试图制作一个小应用程序。 在发布问题之前做了一些研究,但是我发现的解决scheme都不适用于我。 任何帮助将非常感激。 谢谢 错误:任务':app:mergeDebugResources'的执行失败。 >错误:java.lang.RuntimeException:java.lang.RuntimeException:com.android.builder.internal.aapt.AaptException:AAPT2编译失败: aapt2 compile -o / home / xhensi / AndroidStudioProjects / FindRestaurant / app / build / intermediates / res / merged / debug /home/xhensi/AndroidStudioProjects/FindRestaurant/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values .XML 问题: – 错误:/home/xhensi/AndroidStudioProjects/FindRestaurant/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml:244 invalid dimen – 错误:/home/xhensi/AndroidStudioProjects/FindRestaurant/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml:245 invalid dimen – 错误:/home/xhensi/AndroidStudioProjects/FindRestaurant/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml:283 invalid dimen – 错误:/home/xhensi/AndroidStudioProjects/FindRestaurant/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml:309 invalid dimen – 错误:/home/xhensi/AndroidStudioProjects/FindRestaurant/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml:310 […]

如何在构build过程中解决Android库定制属性和包名重新映射?

随着时间的推移,我们的Android项目已经扩展了很多,现在我们正在从同一个源代码树创build多个品牌的APK。 由于Android的软件包命名要求,这已变得具有挑战性。 我们在Android库项目中拥有所有的共享代码,该项目包含在主应用程序项目中。 此外,我们还为每个品牌申请的品牌资源提供Android库“覆盖”。 当我们想要build立一个品牌时,我们会为该品牌添加一些额外的属性,最终在主共享代码Android库之前包含“覆盖”Android库。 为了显示: AppProject Include: BrandALibrary or BrandBLibrary Include: SharedLibrary SharedLibrary -> src/.. -> res/.. BrandALibrary -> res/.. BrandBLibrary -> res/.. 'BrandALibrary或BrandBLibrary'是在构build时切换的,通过在构build时使用命令行开关包含.properties文件。 那里没什么特别的。 构build脚本还必须在构build时更改.APK的软件包名称,以便两个.APK文件可以同时在给定设备上共存(主要用于质量保证目的,因为我们不希望客户同时拥有同一时间…虽然他们可以)。 在我们的共享代码库项目中添加一个类之后,所有的工作都很好,直到我们的构build今天破产。 在四处寻找为什么会发生这种情况的原因,我偶然发现了下面的网页,其中的同事遇到了同样的问题,并修复了他的版本的aapt,使之工作: http://devmaze.wordpress.com/2011/05/22/the-case-of-android-libraries-and-custom-xml-attributes-part-2/ 在我们的构build过程中,日志中显示了以下错误: -pre-build: -code-gen: [echo] ———- [echo] Handling aidl files… [aidl] No aidl files to compile. [echo] ———- [echo] Handling RenderScript files… [renderscript] No renderscript files […]

在travis yml文件上configurationgradle.properties android.enableAapt = false

在我的Android的gradle.properties我有以下几点: android.enableAapt2=false 我的gradle.properties位于我的本地机器的~/.gradle/gradle.properties中。 我想知道如何添加android.enableAapt=false到我的XML文件。 我试图在全局下添加它,但没有工作没有错误,但在robolectric它需要设置,如果您使用gradle:3.0.0-beta3 。 language: android jdk: oraclejdk8 env: global: – ANDROID_TARGET=android-25 – ANDROID_ABI=armeabi-v7a – android.enableAapt2=false android: components: – tools – platform-tools – build-tools-25.0.3 – android-25 – extra-android-m2repository – sys-img-${ANDROID_ABI}-${ANDROID_TARGET} licenses: – android-sdk-license-.+ – '.+' script: – ./gradlew –daemon build jacocoTestReport –info after_success: – bash <(curl -s https://codecov.io/bash) 下面是travis-ci上的configuration文件 { "language": "android", "jdk": […]

如何在不使用<add-resource>的情况下使用aapt来使用多个-S值?

我正在尝试从命令行使用aapt来构buildR.java。 我指定了多个-S目录,因为我有多个res目录。 我正在build设中使用: aapt package \ -M AndroidManifest.xml \ -m -J gen \ -S src/com/example/res \ -S src/com/example/ui/res 不幸的是,我收到以下错误: src/com/example/ui/res/values/strings.xml:2: error: Resource at app1_name appears in overlay but not in the base package; use <add-resource> to add. 目前, src/com/example/ui/res/values/strings.xml包含以下内容: <resources> <string name="app1_name">MyAppName</string> </resources> 我宁愿不必将其更改为: <resources> <add-resource type="string" name="app1_name">MyAppName</add-resource> </resources> (这是build议在https://groups.google.com/forum/?fromgroups#!topic/android-porting/bYfeLEjERjg ,虽然它似乎甚至不能解决我的问题。) 我是否会误以为-S参数应该如何工作? 我能想到的唯一解决方法是将所有-S目录符号链接作为根res目录的子目录,并将res指定为唯一的-S目录。

重新打包APK文件以包含自定义资产 – 使用什么构build工具?

更新 :这是一个旧的post,以下参考破碎的aapt版本将过时。 基于以前的反馈,我将自定义文本字段存储在我的应用程序的资产目录中。 我将使用资产文件中的默认用户详细信息编写应用程序,客户端希望为每个用户重新构build应用程序,包括资产文件中的用户详细信息。 (我知道这是方法有一些严重的缺点,但客户端仍然热衷于这样做 – 请参阅在APK文件中embeddedlogin详细信息,不同的每个用户(或其他选项?) ) 这个问题涉及我重buildAPK文件时遇到的麻烦,一旦我解压缩,并更新自定义资产文件。 我很确信我错过了一些小的东西,但是,我发现这些方法的文档和post对新手来说没有足够的帮助。 aapt – android sdk工具:不幸的是,在android文档[下面的链接2]上的“使用aapt”的android文档是非常有限的。 控制台命令-help显示了一些信息。 当试图使用它来添加一个文件到test.apk,它最终删除原来的,并创build一个新的文件test.apk.zip只包含我试图添加的文件。 我一直没有find正确的命令行组合来解压缩apk并重新打包 – 这将是我的第一个奖项。 apkbuilder – Android的SDK工具:首先这个工具已被弃用,这是一个负面的点。 我也无法得到它与我在该解压缩的文件夹中的工作。 我想我缺less一个apkbuilder之前的步骤,因为apkbuilder需要一个资源zip压缩文件,我有一个资源文件夹。 antbuild立工具:其他类似的post说,build立与ant,而不是使用Android工具。 我有麻烦让ant工作。 获取Ant与Android [链接3]下面的一个特定的链接看起来很有前途,但看起来像一个不同的android SDK(由android生成的我的build.xml看起来不同于他)。 不幸的是,我对ant​​知之甚less,而且在解决当前问题方面遇到了麻烦。 除了下面的NickT的解决scheme – 运行ant脚本给我的错误 无法使用类加载器AntClassLoader []findtaskdef类com.android.ant.SetupTask 。 我已经find了一些在线引用这个错误,已经确认local.properties有一个sdk.dir设置指向我的android sdk安装文件夹(sdk.dir = / Applications / android-sdk-mac_86)。 ?????:可能还有其他的选项,我没有列出/发现,我将有兴趣听到。 我意识到,钻研通常由我的ide覆盖的齿轮可能会导致diffuculties。 但是我知道很多SO用户可以做很多这样的事情,我希望我能得到他们中的一些人的兴趣。 谢谢你的帮助。 (在Mac Snow Leopard 10.6 64位上的Eclipse 3.6) PS,我不能发布超过1超链接,所以我已经包括这些地址,以显示更多的信息,我的问题。 (1):stackoverflow.com/questions/4783160/embed-login-details-in-apk-file-different-for-each-user-or-other-options […]

未parsing的aapt错误(s)!

我在Eclipse中使用Android,试图将我find的模板项目中的代码合并到Android创build的框架项目中,当您开始一个新项目时。 这不是初始设置; 已经得到了几个项目运行,虽然我是新的Android编码,我已经工作了好几个星期没有这个问题,所以环境设置好我认为。 我看到的错误是 – Unparsed aapt error(s)! Check the console for output 有一次,我清除了控制台消息,现在甚至在closures项目和Eclipse之后,然后重新打开,我没有收到控制台消息,也没有标记我的源文件或资源文件。 什么是aapt,我应该在哪里寻找这个错误的来源? 在此先感谢您的帮助。

libpng错误:不是PNG文件

我已经尝试了几次升级过去的1.3.1的Android Studio构build工具,但我总是以这个libpng错误结束。 我解决了一个错误,通过完全删除一个Maven的依赖(因为Gradle控制台确切地指出了问题文件的位置),但是现在我坚持使用相同的错误,并且没有指向问题文件的位置。 我错过了什么吗? 这里是gradle控制台日志: Executing tasks: [:app:generateDebugSources, :app:generateDebugAndroidTestSources] Configuration on demand is an incubating feature. :app:preBuild UP-TO-DATE :app:preDebugBuild UP-TO-DATE :app:checkDebugManifest :app:preReleaseBuild UP-TO-DATE :app:prepareComAndroidDatabindingAdapters10Rc3Library UP-TO-DATE :app:prepareComAndroidDatabindingLibrary10Rc3Library UP-TO-DATE :app:prepareComAndroidSupportAppcompatV72310Library UP-TO-DATE :app:prepareComAndroidSupportCardviewV72310Library UP-TO-DATE :app:prepareComAndroidSupportDesign2310Library UP-TO-DATE :app:prepareComAndroidSupportMediarouterV72220Library UP-TO-DATE :app:preDebugAndroidTestBuild UP-TO-DATE :app:prepareComAndroidSupportMultidex101Library UP-TO-DATE :app:prepareComAndroidSupportPercent2310Library UP-TO-DATE :app:prepareComAndroidSupportRecyclerviewV72310Library UP-TO-DATE :app:prepareComAndroidSupportSupportV42310Library UP-TO-DATE :app:prepareComCrashlyticsSdkAndroidAnswers132Library UP-TO-DATE :app:prepareComCrashlyticsSdkAndroidBeta113Library UP-TO-DATE :app:prepareComCrashlyticsSdkAndroidCrashlytics252Library UP-TO-DATE :app:prepareComCrashlyticsSdkAndroidCrashlyticsCore235Library UP-TO-DATE :app:prepareComFacebookAndroidFacebookAndroidSdk410Library UP-TO-DATE […]

aapt错误获取“android:name”属性:属性不是string值

当我的apk生成时,我执行命令aapt dump badging 。 我不断收到以下错误: application:label ='Name'icon ='res / drawable / icon_128x128.png' application-debuggable launchable-activity:name ='co.package.name.MainActivity'label ='Name'icon =''ERROR gets'android:name'attribute:attribute is not a string value 我已经尝试为所有活动添加一个标签名称,并删除/ res下的所有其他值-xxx文件夹,但徒劳无益。 但是,如果我创build了一个全新的项目并生成新的APK,则可以使用aapt dump badging命令成功执行APK。 我比较了两个APK的打印信息,发现了一个主要区别: 成功消息apk: 应用标签:“AppLabel” 应用程序图标-160: 'RES /抽拉-xhdpi / icon_128x128.png' 应用程序图标-240: 'RES /抽拉-xhdpi / icon_128x128.png' 应用程序图标-320: 'RES /抽拉-xhdpi / icon_128x128.png' application:label ='AppLabel'icon ='res / drawable-xhdpi / icon_128x128.png' 应用程序debugging的 launchable-activity:name […]

Ant脚本中的aapt元素的文档

我正在为Android构build系统开发一些Ant脚本,并且遇到了一个调用aapt的元素。 我见过很多例子 exec可执行文件=“$ {aapt}” 但是来自main_rules.xml文件的使用不同的格式 <aapt executable="${aapt}" command="package" debug="${build.packaging.debug}" manifest="AndroidManifest.xml" assets="${asset.absolute.dir}" androidjar="${android.jar}" apkfolder="${out.absolute.dir}" resourcefilename="${resource.package.file.name}" resourcefilter="${aapt.resource.filter}"> <res path="${resource.absolute.dir}" /> <!– <nocompress /> forces no compression on any files in assets or res/raw –> <!– <nocompress extension="xml" /> forces no compression on specific file extensions in assets and res/raw –> </aapt> 我想使用这个元素重命名包,但是找不到任何有关如何使用它的文档。 有谁知道我在哪里可以find一些? 谢谢