Android Studio 3.1自定义制作jar包

网上找了好多资料,发现还是没有制作成功,各种报错,看到烦,最后自己从头做了个简单的Test,总算是完工了!

本文仅供以后查看,怕忘记!


平台环境:Android Studio  3.1

目的:Test打进jar包里,让app实现调用;


1.首先创建一个new project,选择一个empty activity,然后finish;

2.第二步,就是在app目录下的src/main/java下,创建一个Test package,在package里创建两个类,一个TestPrint,一个TestDoWith;

public abstract class TestPrint {
    public abstract String print();
}
public class TestDoWith extends TestPrint {

     @Override
    public String print(){
         String strTemp = "Use it Successed!";
        return strTemp;
    }
}

3.再MainActivity里面调用一下,run一下

TestPrint testPrint;
TextView tv_Title;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    initView();
    testPrint = new TestDoWith();

    tv_Title.setText(testPrint.print());
}

private void initView(){
    tv_Title = findViewById(R.id.TV_Title);
}

看会不会显示

"Use it Successed!"

这样就说明TestPackage包是能正常使用的;

下面就开始把Test package打包成jar:


1.首先还是老方法,在app同级目录下创建一个新的Module,选择类型是library,直到finish完成。


我就创建了一个mylibrary,如上图所示:

2.然后把app/src/main/java里面的新建的package里面的两个类,剪切进如图:


然后删除掉app里面的package一项。

3.修改mylibrary目录下的build.gradle文件,如下:

def BASENAME = "Test";
def VERSION = "_V1.0";
def DestinationPath = "build";

task delete(type: Delete) {
    delete DestinationPath + BASENAME + VERSION + ".jar"
}
task makeJar(type: Jar) {
    from('build/intermediates/classes/debug/com/realid/mylibrary/TestDoWith.class','build/intermediates/classes/debug/com/realid/mylibrary/TestPrint.class')
    into('')
    baseName = BASENAME + VERSION
    destinationDir = file(DestinationPath)
}
makeJar.dependsOn(delete, build)

这个时候要注意了:在task makeJar里面的from,网上找到的基本上都是('build/intermediates/bundles/***/***'),你会发现在目录下根本就没有,其实你只要打包你所要打包的那个类就可以了这里我就打包了

com/realid/mylibrary/TestDoWith.class','build/intermediates/classes/debug/com/realid/mylibrary/TestPrint.class')

同时要注意:别把BuildConfig.class以及R.class也一起打包进来了。编译的时候会报错。

同时提醒:在project目录下出现了变化:(build.gradle可以看到加进了如下几行)

allprojects {
    repositories {
        google()
        jcenter()
    }
}
这几行很关键,如果没有这几行,mylibrary下的

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])

    implementation 'com.android.support:appcompat-v7:27.1.1'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.1'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}

会产生报错。

4.在平台的右侧Gradle下,选择如下图所示:



执行makeJar,成功之后,如下图:


这样就成功生成了jar包了。

5.最后就是在app目录下的build.gradle添加如下

compile project(':mylibrary')

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.1'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
    compile project(':mylibrary')
}

就可以在MainActivity里面调用Test里面的print函数了

如果是自己用jni生成so库的,package名要一致就可以了


版权声明:https://blog.csdn.net/KingOTG/article/details/79882070

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KingOTC

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值