AndroidStudio 3 export jar file

1.  File -> New -> New Module -> Android Library  例子中暂命名ModuleA

2. 修改刚创建 ModuleA下的build.gradle

android条目下添加 publishNonDefault true (否则build文件夹下不会有编译好的jar文件夹及文件)

3. 如果有其他依赖jar文件,放在ModuleA    lib文件夹内,并在dependance 下添加链接路径

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    testImplementation 'junit:junit:4.12'
    implementation 'com.android.support:appcompat-v7:28.0.0-alpha3'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation files('libs/xxx-classes.jar')
}

4. 添加如下代码

task clearJar(type: Delete) {
    delete 'build/libs/xyz.jar'////这行表示如果你已经打过一次包了,再进行打包则把原来的包删掉
}

task makeJar(type: Copy) {
    from('build/intermediates/intermediate-jars/release/') //这行表示要打包的文件的路径,根据下面的内容,其实是该路径下的classes.jar
    into('build/libs/')  //这行表示打包完毕后包的生成路径,也就是生成的包存在哪
    include('classes.jar')  //看到这行,如果你对分包有了解的话,你就可以看出来这行它只是将一些类打包了
    rename ('classes.jar', 'xyz.jar')
}

makeJar.dependsOn(clearJar, build)

注:粉色框内的文件夹名字可能会随AS版本不同有所差异

5. 找到此文件夹下的makeJar,双击,编译后就会在ModuleA 下的 build/libs/目录内找到编译好的 xyz.jar

6 如果想此文件用在unity3d中,只需要丢到unity3d  Assets/Plugins目录下 

参考:https://stackoverflow.com/questions/43039532/no-release-bundle-folder-after-upgrading-android-studio

https://blog.csdn.net/lsziri/article/details/53406390 

原文地址:https://www.cnblogs.com/pengyingh/p/9188660.html