android studio中自己新建了一个jar的包,在引入项目后项目不能运行
专业在线博彩导航
专业在线博彩导航
当前位置 : 专业在线博彩导航 > 澳门博彩导航

android studio中自己新建了一个jar的包,在引入项目后项目不能运行

如题,我在网上找了一个关于MD5计算的包,想引入到项目里面,于是file》module》new了一个然后将代码贴了进去,这就是贴进去后的样子:

package com.never.util;

import java.security.MessageDigest;

public class MD5Util {
    public static String MD5String sourceStr {
        try {
            MessageDigest mdInst = MessageDigest.getInstance"MD5";
            mdInst.updatesourceStr.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.appendInteger.toHexStringtmp;
            }
            return buf.toString.substring8, 24;// 16位加密
            // return buf.toString;// 32位加密
        } catch Exception e {
            e.printStackTrace;
            return null;
        }
    }

    public static void mainString[] args {
        String str = "1";
        String encryptStr = MD5str;
        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天多了,不知道怎么解决

最大的可能是你制作jar包的时候,javac编译用的jdk版本和你在android studio里的jdk版本不一致导致的
我用同样的代码做了实验,制作jar包和在android studio下用的同样是jdk1.6,结果是正常的。

我没用过gradle,只是了解,在 Gralde 的 Java Plugin 中有提到 sourceCompatibilitytargetCompatibility,你可以看看。

另外 StackOverflow 上有人回答相关问题,解决方案是

groovyallprojects {
    apply plugin: java
    sourceCompatibility = 1.6
    targetCompatibility = 1.6
}

还有一个解决方案在 这里,根据它的说明,应该是

groovyandroid {
    // 其它配置.......


    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_6
        targetCompatibility JavaVersion.VERSION_1_6
    }
}

具体哪个有效,就只有你自己试试了

栏目列表

广告位

专业在线博彩导航