我按照以下步骤导入了 commons-codec-1.10.jar:
- 在 de app 目录下创建了一个 libs 目录
- 手动复制 libs 目录中的 .jar
- 右键单击 android-studio 中的 .jar 并单击 Add as library
在我的 build.grade 中添加了这一行
compile fileTree(dir: 'libs', include: ['*.jar'])
在我的课堂上,我像这样导入了库:
import org.apache.commons.codec.binary.Base64;
然后我尝试访问 Base64 中的 encodeBase64String 静态方法,如下所示:
public static class DoThisThing {
public String DoThisOtherThing() {
String hashed = "hello";
String hash = Base64.encodeBase64String(hashed.getBytes());
return hash;
}
}
public class ActivityThing extends AppCompatActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_activity_thing);
String hash = DoThisThing.DoThisOtherThing();
System.out.println(hash);
}
}
那里没有错,即使我编译时,除了我运行应用程序时,它会引发以下错误并且应用程序关闭:
11-03 09:41:27.719 2390-2476/com.myproject E/AndroidRuntime: Caused by: java.lang.NoSuchMethodError: No static method encodeBase64String([B)Ljava/lang/String; in class Lorg/apache/commons/codec/binary/Base64; or its super classes (declaration of 'org.apache.commons.codec.binary.Base64' appears in /system/framework/org.apache.http.legacy.boot.jar)
顺便说一句,我的 DoThisThing 类不在活动内,只是为了让它简短。我检查了库,确实 encodeBase64String 是静态的。所以我不知道该怎么做,我是java和android环境的新手。所以任何帮助将不胜感激