使用Realm 5.11.0与Stetho-Realm 2.1.0连接Chrome时应用崩溃求助
解决Realm 5.11.0 + Stetho-Realm 2.1.0连接Chrome崩溃的问题
你遇到的核心问题是版本不兼容:Stetho-Realm 2.1.0依赖的Realm内部API(比如io.realm.internal.LinkView)在Realm 5.11.0中已经发生了结构或路径变化,导致运行时找不到该类,触发了NoClassDefFoundError。
下面是具体的解决方案:
方案1:升级Stetho-Realm到兼容Realm 5.11.0的版本
Stetho-Realm的版本需要和Realm严格匹配,Realm 5.11.0对应的兼容Stetho-Realm版本是2.2.0。修改你的Gradle配置:
项目根目录的build.gradle:
buildscript { dependencies { classpath "io.realm:realm-gradle-plugin:5.11.0" // 其他依赖... } }
模块目录的build.gradle:
dependencies { implementation 'com.uphyca:stetho-realm:2.2.0' // 其他依赖... }
方案2:降级Realm到Stetho-Realm 2.1.0支持的版本
如果你暂时不想升级Stetho-Realm,可以将Realm降级到5.8.0(Stetho-Realm 2.1.0官方支持的最高Realm版本):
项目根目录的build.gradle:
buildscript { dependencies { classpath "io.realm:realm-gradle-plugin:5.8.0" // 其他依赖... } }
模块目录的build.gradle:
dependencies { implementation 'com.uphyca:stetho-realm:2.1.0' // 其他依赖... }
额外注意事项
- 确保所有Realm相关依赖的版本完全一致,避免混合版本引发的冲突。
- 修改版本后,执行
./gradlew clean build清理项目缓存并重新构建,防止旧缓存干扰。 - 如果你的项目开启了代码混淆,需要在proguard规则中添加以下内容,避免Stetho-Realm和Realm的核心类被混淆:
-keep class io.realm.** { *; } -keep class com.uphyca.stetho_realm.** { *; }
内容的提问来源于stack exchange,提问作者Sagar Jethva
相关产品推荐
相关产品推荐

