升级Realm至4.3.3后Gradle同步失败,报错packageForR未知属性
解决Realm 4.3.3升级后Gradle同步报错:Could not get unknown property 'packageForR'
我之前升级Realm的时候也碰到过一模一样的问题,这本质是Realm 4.3.3和你当前使用的Android Gradle Plugin(AGP)版本不兼容导致的。下面是一步步的解决办法:
1. 检查并升级Android Gradle Plugin版本
Realm 4.3.3需要搭配AGP 3.0.0及以上版本使用。打开项目根目录的build.gradle文件,确认com.android.tools.build:gradle的版本:
buildscript { repositories { google() jcenter() } dependencies { // 确保这里的版本 >= 3.0.0,比如3.0.1或更高稳定版 classpath 'com.android.tools.build:gradle:3.0.1' classpath "io.realm:realm-gradle-plugin:4.3.3" } }
如果你的AGP版本低于3.0.0,直接升级到符合要求的版本。
2. 匹配对应的Gradle版本
AGP版本和Gradle发行版是一一对应的,比如AGP 3.0.1需要搭配Gradle 4.1版本。打开gradle/wrapper/gradle-wrapper.properties文件,修改distributionUrl:
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
你可以根据自己选择的AGP版本调整(比如AGP 3.1.x对应Gradle 4.4,AGP 3.2.x对应Gradle 4.6)。
3. 确保Realm插件的应用顺序正确
在app模块的build.gradle里,一定要先应用Android插件,再应用Realm插件:
apply plugin: 'com.android.application' apply plugin: 'realm-android' // 这个必须放在Android插件之后
顺序颠倒可能会导致插件初始化时无法正确获取必要的属性。
4. 重新执行清理和同步
完成上述修改后,执行以下命令彻底清理并重新构建:
./gradlew clean ./gradlew --stop ./gradlew assembleDebug
之后再回到Android Studio点击"Sync Project with Gradle Files",应该就能成功同步了。
内容的提问来源于stack exchange,提问作者Iman Marashi
相关产品推荐
相关产品推荐

