【发布时间】:2016-01-26 21:00:39
【问题描述】:
我的 Android 应用有两种不同的风格,lite 和 pro。在应用程序中,我有一个名为 customFragment.java 的类,它包含在 main 中(不同风格之间没有区别),还包括以下代码:
import haibison.android.lockpattern.LockPatternActivity;
private void showLockPattern() {
if (BuildConfig.IS_VERSION_PRO) {
Intent intent = new Intent(LockPatternActivity.ACTION_VERIFY_CAPTCHA, null, this, LockPatternActivity.class);
startActivityForResult(intent, PATTERN_ID);
}
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PATTERN_ID && resultCode == Activity.RESULT_OK) {
Log.i("App", "OK!");
}
}
在 app.gradle 中,我只为专业版添加了 LockPattern 库:
dependencies {
proCompile 'com.github.haibison:android-lockpattern:6.0.0'
}
我在这两种风格中描述的类相同(所以在主文件夹中),因为它很大,我不想在两种风格中复制代码。 pro 风格构建成功,但 lite 风格显示错误,因为我也没有导入 lite 风格的依赖项。
我看到的一个解决方案是将 lockpattern 库添加到两种风格中,然后使用 proGuard 将其从 lite 风格中删除。尽管我相信这可能会奏效,但它可能不是最流畅的选择。当然,我也可以简单地忽略 lite 风格的未使用库的开销。
您将如何解决这个问题?我在stackoverflow上搜索了很长时间,但没有找到任何答案,所以几年来我第一次决定注册并提出问题。
【问题讨论】:
标签: android gradle android-gradle-plugin android-productflavors android-proguard