티스토리 뷰

android

custom frameWork 빌드 방법.

노명규 2020. 1. 21. 16:33

 

그래들에 디펜던시 설정

 

dependencies {

    compileonly files('libs/framework.jar')

}

 

 

안드로이드 {} 외부에 .. 디펜던시 위에 빌드 속성 추가 

preBuild {
    doLast {
        def imlFile = file(project.name + ".iml")
        println 'Change ' + project.name + '.iml order'
        try {
            def parsedXml = (new XmlParser()).parse(imlFile)
            def jdkNode = parsedXml.component[1].orderEntry.find { it.'@type' == 'jdk' }
            parsedXml.component[1].remove(jdkNode)
            def sdkString = "Android API " + android.compileSdkVersion.substring("android-".length()) + " Platform"
            new Node(parsedXml.component[1], 'orderEntry', ['type': 'jdk', 'jdkName': sdkString, 'jdkType': 'Android SDK'])
            groovy.xml.XmlUtil.serialize(parsedXml, new FileOutputStream(imlFile))
        } catch (FileNotFoundException e) {
            // nop, iml not found
        }
    }

 

 

 

프로젝트 그래들에 클래스 패스 설정

 

allprojects {

    repositories {

        jcenter()

    }

    // Adds a prefix to the search path for bootstrap classes.

    gradle.projectsEvaluated {

        tasks.withType(JavaCompile) {

            options.compilerArgs.add('-Xbootclasspath/p:app\\libs\\framework.jar')

        }

    }

}

 

 

참조 1: https://tetzzang.com/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%8A%A4%ED%8A%9C%EB%94%94%EC%98%A4%EC%97%90%EC%84%9C-%EC%8B%9C%EC%8A%A4%ED%85%9C-%EC%95%B1-%EB%B9%8C%EB%93%9C%ED%95%98%EA%B8%B0/

참조 2: http://www.31mins.com/android-studio-build-system-application/

참조 3: http://stackoverflow.com/questions/27441398/how-to-put-my-libraries-in-front-of-android-jar-by-editing-build-gradle-in-andro