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