网上看了很多打包生成jar的,我的问题就是     问题:作为库的build.gradle中引用到三方库比如 compile 'com.zhy:okhttputils:2.6.2'
        打包之后调用jar中的方法是可以的但是调用compile 'com.zhy:okhttputils:2.6.2'的引用是不可以的,
        我得出来的结论就是 打包的时候库中 compile 'com.zhy:okhttputils:2.6.2'并没有打入进去,如何解决呢???
 库中的build.gradle文件配置
apply plugin: 'com.android.library'android {
    compileSdkVersion 25
    buildToolsVersion "25.0.3"    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    lintOptions {
        abortOnError false
    }
}dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:25.3.1'
    compile 'com.zhy:okhttputils:2.6.2'
    compile 'com.google.code.gson:gson:2.8.0'
}
task makeJar(type: Copy) {
    delete 'build/libs/mysdk.jar'
    from('build/intermediates/bundles/release/')
    into('build/libs/')
    include('classes.jar')
    rename ('classes.jar','mysdk.jar')
}
//
//makeJar.dependsOn(build)
//task releaseMyLib(type: Copy, dependsOn: ['build']) {
//    from( 'build/intermediates/bundles/release/')
//    from(project.zipTree("libs/glide-3.5.2.jar")) // 添加这一行
//    destinationDir = file('build/libs')
//    from('classes.jar')
//    from('com/bumptech/glide/*.class') // 同时记得加上第三方的package
//    rename('classes.jar', 'my-lib.jar')
//}
调用的地方:  SendSMSUtils.sendSMS(null, null, "",new 这里的StringCallback没有提示 )  //StringCallback是okhttp的类
        //new String[]{"startDate","endDate"},new String[]{"2017-11-30","2017-12-01"},
//        SendSMSUtils.sendSMS(new String[]{"startDate","endDate"},new String[]{"2017-11-30","2017-12-01"},
//          "http://server.b2c.dplusrv.com/shendiApi/campsite/initCampsiteInfo.do", new StringCallback() {
//            @Override
//            public void onError(Call call, Exception e, int id) {
//
//            }
//
//            @Override
//            public void onResponse(String response, int id) {
//                Log.i("response", "response: " + response);
//            }
//        });

解决方案 »

  1.   

    混淆文件里面配置一下,引用不混淆-keep xxx
    # 缺省proguard 会检查每一个引用是否正确,但是第三方库里面往往有些不会用到的类,没有正确引用。如果不配置的话,系统就会报错。
    -dontwarn com.facebook.**
    -keep class com.facebook.** { *;}
      

  2.   

     不是打包的问题,是制作成jar包; minifyEnabled false是不开启混淆配置的,我的问题是jar中的资源问题映射,比如三方sdk可以做到引用资源等,我打包成的jar中本身引用其他jar,但是调用制作好的jar包,这个jar包内部引用的其他jar包没有被编译进去