【发布时间】:2021-11-22 10:57:23
【问题描述】:
我有一个使用 Rome for rss 的 Android 项目,在使用调试版本时效果很好(请参阅下文)。但是当我切换到发布时,它给了我:
java.lang.ClassNotFoundException: Didn't find class "com.rometools.rome.feed.synd.impl.ConverterForAtom10" on path: DexPathList[[zip file "/data/app/~~KaWHVUAFHxJthThQtBTQVg==/com.theredspy15.thanelocker-Yv1ajdDGETGskLhAp9OAmw==/base.apk"],nativeLibraryDirectories=[/data/app/~~KaWHVUAFHxJthThQtBTQVg==/com.theredspy15.thanelocker-Yv1ajdDGETGskLhAp9OAmw==/lib/arm64, /system/lib64, /system/system_ext/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:207)
随着:
java.lang.ClassNotFoundException: com.rometools.rome.feed.synd.impl.ConverterForAtom10
错误中还提到了这一行:
feed = input.build(new XmlReader(new URL(url)));
我的构建类型:(通常启用 minify 并且 debug 为 false)
debug {
minifyEnabled false
shrinkResources false
debuggable true
signingConfig signingConfigs.debug
}
release {
minifyEnabled false
shrinkResources true
debuggable true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
我最好的猜测是 proguard 正在删除不应该删除的内容。我在 android studio 中使用默认的 proguard 规则文件。一切都是最新版本,如果它与 proguard 规则有关,我不知道如何让 Rome 在这种情况下在调试和发布构建类型上工作
【问题讨论】:
-
不熟悉这个库,但您可以将其添加到您的 proguard 规则(如果启用了 minify)以保留该包。
-keep class com.rometools.rome.** { *; }
标签: java android gradle proguard rome