android studio中自己新建了一个jar的包,在引入项目后项目不能运行
如题,我在网上找了一个关于MD5计算的包,想引入到项目里面,于是file》module》new了一个然后将代码贴了进去,这就是贴进去后的样子:
package com.never.util;
import java.security.MessageDigest;
public class MD5Util {
public static String MD5(String sourceStr) {
try {
MessageDigest mdInst = MessageDigest.getInstance("MD5");
mdInst.update(sourceStr.getBytes());
byte[] md = mdInst.digest();
StringBuffer buf = new StringBuffer();
for (int i = 0; i < md.length; i++) {
int tmp = md[i];
if (tmp < 0)
tmp += 256;
if (tmp < 16)
buf.append("0");
buf.append(Integer.toHexString(tmp));
}
return buf.toString().substring(8, 24);// 16位加密
// return buf.toString();// 32位加密
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
public static void main(String[] args) {
String str = "1";
String encryptStr = MD5(str);
System.out.println("加密前:" + str);
System.out.println("加密后:" + encryptStr);
}
}
然后build了一下生成了class文件,用jar命令打包了,包里面的结构是(我觉得打的包的结构是正确的):
|
|-META-INF
|-com
|-never
|-util
|-MD5Util.class
|
然后把jar 放在了app的lib里面,设置了library,可是在build的时候会报错:
...while parsing com/never/util/MD5Util.class
1 error; aborting
Error:Execution failed for task ':app:preDexDebug'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/usr/lib/jvm/java-8-oracle/bin/java'' finished with non-zero exit value 1
只要把生成的包移除编译就能通过,可是那个包里面没有错啊,为什么还会在编译的时候报错?
劳烦老鸟给我说说,已经1天多了,不知道怎么解决
LC3141
10 years, 4 months ago
Answers
我没用过gradle,只是了解,在 Gralde 的
Java Plugin
中有提到
sourceCompatibility
和
targetCompatibility
,你可以看看。
另外 StackOverflow 上有人回答相关问题 ,解决方案是
groovy
allprojects { apply plugin: 'java' sourceCompatibility = 1.6 targetCompatibility = 1.6 }
还有一个解决方案在 这里 ,根据它的说明,应该是
groovy
android { // 其它配置....... compileOptions { sourceCompatibility JavaVersion.VERSION_1_6 targetCompatibility JavaVersion.VERSION_1_6 } }
具体哪个有效,就只有你自己试试了
龙凰院麟音
answered 10 years, 4 months ago