为嵌套的Android库项目运行Proguard

时间:2015-10-19 11:40:14

标签: android android-proguard

我正在开发一个Android SDK,其架构基于https://github.com/android10/Android-CleanArchitecture/的略微修改版本。

布里奇的建筑:

Data -> Android Library that contains all the Realm, API calls etc Domain -> POJ library that contains all the business logic SDK -> Android library that contains SDK related screens and other business logic

基本假设 我在SDK中添加了DataDomain作为compile(:project)。我在SDK项目中编写了一个proguard配置,它处理大多数常见的Android相关规则和一些与自定义库相关的东西。我的假设是这个设置是正确的,我会向开发人员提供一些SDK相关规则,他们将能够在他们的应用程序下使用SDK。

现在我在Data中有一个名为Configuration的类,它是单例。我添加了以下规则来避免NoClassDefFoundError:

# Common flags
-keepattributes InnerClasses,Signature
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
# Class specific rule
-keep public class com.company.android.data.Configuration { *; }

我最终还是

Caused by: java.lang.ClassNotFoundException: Didn't find class "com.company.android.data.Configuration" on path: DexPathList[[zip file "/data/app/com.company.android.sdk.sample-2/base.apk"],nativeLibraryDirectories=[/data/app/com.simpl.android.sdk.sample-2/lib/arm, /vendor/lib, /system/lib]]
10-19 17:00:26.134 30554-30554/com.company.android.sdk.sample E/AndroidRuntime:

有关如何解决此问题的任何建议吗?

0 个答案:

没有答案