ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Android gradle插件v3.3.0->使用Proguard时找不到R $raw

2019-12-11 06:27:42  阅读:241  来源: 互联网

标签:build android-proguard android android-gradle-plugin


刚更新为Android Gradle插件版本3.3.0

我们有以下设置(不确定哪个很重要):

>具有3个库模块(数据,域,utils)的应用程序项目(app)
>启用数据绑定(databinding.enabled为true)
>启用Proguard(proguardFiles’proguard-rules.pro’)

当我使用以下方式构建应用程序时:

./gradlew assembleDevRelease

我收到以下错误:

找不到引用的类my.package.data.R $raw

当我使用以下方式构建应用程序时:

./gradlew:app:assembleDevRelease

该应用程序构建良好,生成了一个模糊的* .apk,我可以安装它

题:

> assembleRelease和:app:assembleRelease有什么区别

-为什么切换到android gradle插件3.3.0会影响构建apk必须调用的任务?我们在CI管道的任何地方都使用assembleRelease来构建apk.

> android gradle插件3.3.0中发生了什么更改,导致任务assembleRelease中断?我们在CI管道的任何地方都使用assembleRelease来构建apk.
>关于如何使’assembleRelease’重新工作的任何建议? (更新Proguard配置?,启用R8?)

解决方法:

What’s the difference between assembleRelease and :app:assembleRelease

前者在相对于当前级别的所有模块上运行assembleRelease任务.后者仅在应用程序模块(及其依赖项)上运行它.

Why does switching to android gradle plugin 3.3.0 affect which task I have to call to build my apk? We use assembleRelease everywhere in our CI pipelines to build our apks.

该问题没有足够的信息可以肯定地说,但是release notes中列出了许多更改.例如,此问题可能与以下方面有关:

Faster R class generation for library projects: Previously, the Android Gradle plugin would generate an R.java file for each of your project’s dependencies and then compile those R classes alongside your app’s other classes. The plugin now generates a JAR containing your app’s compiled R class directly, without first building intermediate R.java classes. This optimization may significantly improve build performance for projects that include many library subprojects and dependencies, and improve the indexing speed in Android Studio.

标签:build,android-proguard,android,android-gradle-plugin
来源: https://codeday.me/bug/20191211/2106850.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有