Android studio怎么使用自定義的framework而避免沖突報錯和點不進去報紅。


文件:xx\project_abc\video\build.gradle
保證可以運行到自定義的framework而不報錯,可能因為project和module名字相同所以導致下面的路徑是絕對路徑,
其他人使用需要修改這個文件的路徑

allprojects {
    repositories {
        jcenter()
    }
    // 保證可以運行到自定義的framework而不報錯,可能因為project和module名字相同所以導致下面的路徑是絕對路徑
    gradle.projectsEvaluated {
        tasks.withType(JavaCompile) {
            options.compilerArgs.add('-Xbootclasspath/p:D:xx-video\\libs\\framework_classes.jar')
        }
    }
}

 




文件:MX\project_xxxx\video\xx-video\build.gradle
目的是可以消除調用自定義framework引起的報紅,其他項目如果要移植的話要注意修改iml文件名

task pushDownJdkDependency {
    def imlFile = file("mp-video.iml") // 原本是可以用project.name + ".iml"來代替的,但是因為project和module名字相同所以導致iml文件名字比較特殊
    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'])
        def writer = new StringWriter()
        new XmlNodePrinter(new PrintWriter(writer)).print(parsedXml)
        imlFile.text = writer.toString()
    } catch (FileNotFoundException e) {
        // nop, iml not found
    }
}

 



文件:MX\project_xxxx\video\md-video\libs\framework_classes.jar

// compile fileTree(include: ['*.jar'], dir: 'libs')      // 不注釋會導致編譯很慢
provided files('libs/framework_classes.jar')              // 調用但不編譯進代碼

 




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM