gpt4 book ai didi

java - 仅编译两个相似的库来生成一个 APK

转载 作者:行者123 更新时间:2023-12-02 03:18:00 26 4
gpt4 key购买 nike

我有两个 jar,left.jarright.jar。它们相似但不相同。

左.jar:

package com.mydomain.config

public class PkgConfig {
public static int getID() {
throw new RuntimeException();
}

public static String getLeftValue() {
throw new RuntimeException();
}

// the rest of the methods are the same with right.jar
}

右.jar:

package com.mydomain.config

public class PkgConfig {
public static int getID() {
throw new RuntimeException();
}

public static String getRightValue() {
throw new RuntimeException();
}

// the rest of the methods are the same with left.jar
}

在我的 Activity 中,我这样做:

public void myMethod() {
if(com.mydomain.config.PkgConfig.getID() > 1000) {
mDeviceValue = com.mydomain.config.PkgConfig.getLeftValue();
}
else {
mDeviceValue = com.mydomain.config.PkgConfig.getRightValue();
}
}

这就是我声明依赖关系的方式:

compileOnly files('libs/left.jar')
compileOnly files('libs/right.jar')

此设置给我一个错误提示

error: cannot find symbol method getRightValue()

我的目标是创建一个 APK。我知道我可以使用 sourcesets并执行以下操作:

leftCompileOnly files('libs/left.jar')
rightCompileOnly files('libs/right.jar')

但它创建了两个 APK。有办法解决这个问题吗?

最佳答案

同一个 APK 中不可能有两个具有相同完全限定名称的类。所以,要么:

  • 将两个 JAR 替换为一个 JAR 和一个类,或者

  • 重命名其中一个类,或者

  • 将其中一个类移动到不同的包

关于java - 仅编译两个相似的库来生成一个 APK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56946866/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com