Gradle不会将.java编译为jar文件中的.class

时间:2017-02-03 17:44:01

标签: java android android-gradle

我想在Android Studio中编译一个jar文件,到目前为止这个工作,问题是当我想在Unity3D中读取它时,我不能。我发现这是因为jar包含.java源而不是.class文件。

我使用下面的gradle文件: apply plugin:'com.android.library'

android {
    compileSdkVersion 25
    buildToolsVersion "23.0.3"

    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 25
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:25.1.1'
    compile 'com.google.android.gms:play-services:8.4.0'
    compile 'com.android.support:design:25.1.0'
}

task clearJar(type: Delete) {
    delete 'build/libs/mysdk.jar'
}

task makeJar(type: Copy) {
    from('build/intermediates/bundles/release/')
    into('release/')
    include('classes.jar')
    rename ('classes.jar', 'mysdk.jar')
}

makeJar.dependsOn(clearJar, build)



task jarTask(type: Jar) {
    baseName="my-sdk-android"
    from 'src/main/java'
}

task createJarWithDependencies(type: Jar) {
    baseName = "my-sdk-android-jar-with-dependencies"
    from {
        configurations.compile.collect {
            it.isDirectory() ? it : zipTree(it)
        }
    }
    with jarTask
}

configurations {
    jarConfiguration
}

artifacts {
    jarConfiguration jarTask
}

我是新手,所以如果我必须抓住我的档案,请让我知道用什么代码代替什么代码。

提前致谢! :)

2 个答案:

答案 0 :(得分:0)

您可能将错误的文件夹放入jar文件中。 Android Studio和Cradle 执行将Java文件编译为类文件。您只需要找到这些类文件所在的正确文件夹。

答案 1 :(得分:0)

我通过手动将类文件拖到jar文件中来解决这个问题。这现在有效。