cuốn sách gpt4 ai đã làm

具有不同依赖项和相同类文件的 Android 风格

In lại Tác giả: Walker 123 更新时间:2023-11-29 01:27:08 hai mươi bốn 4
mua khóa gpt4 Nike

我的 Android 应用程序有两种不同的风格,litepro。在应用程序中,我有一个名为 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 上搜索了很长时间,但没有找到任何答案,所以几年来我第一次决定注册并提出问题。

câu trả lời hay nhất

Lite 版本未编译,因为 java 找不到 LockPatternActivity。为此,您可以使用以下解决方案。

你需要有一个 flavor 类pro

public final class LockPatternHelper {
private LockPatternHelper() {}

public static void showLockPattern() {
Intent intent = new Intent(LockPatternActivity.ACTION_VERIFY_CAPTCHA, null, this, LockPatternActivity.class);
startActivityForResult(intent, PATTERN_ID);
}
}

hiện hữu lite 风格中,它应该是具有空方法 showLockPattern() 的同一个类。

public final class LockPatternHelper {
private LockPatternHelper() {}

public static void showLockPattern() {}
}

在此之后,您可以从您的 customFragment.java gọi LockPatternHelper.showLockPattern()

每个 flavor 都会使用它的 helper,lite 版本不会包含不必要的库。

关于具有不同依赖项和相同类文件的 Android 风格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33368163/

hai mươi bốn 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress