当前位置: 移动技术网 > IT编程>移动开发>Android > Android studio怎么使用自定义的framework而避免冲突报错和点不进去报红。

Android studio怎么使用自定义的framework而避免冲突报错和点不进去报红。

2018年03月08日  | 移动技术网IT编程  | 我要评论

cfpl幸运码,又冷又明亮txt,索尼数码相机排行榜

文件:MX\project_civic\video\build.gradle
保证可以运行到自定义的framework而不报错,可能因为project和module名字相同所以导致下面的路径是绝对路径,
其他人使用需要修改这个文件的路径

allprojects {
    repositories {
        jcenter()
    }
    // 保证可以运行到自定义的framework而不报错,可能因为project和module名字相同所以导致下面的路径是绝对路径
    gradle.projectsEvaluated {
        tasks.withType(JavaCompile) {
            options.compilerArgs.add('-Xbootclasspath/p:D:\\android\\androidstudio\\MX\\project_civic\\video\\mx-video\\libs\\framework_classes.jar')
        }
    }
}

 




文件:MX\project_civic\video\mx-video\build.gradle
目的是可以消除调用自定义framework引起的报红,其他项目如果要移植的话要注意修改iml文件名

task pushDownJdkDependency {
    def imlFile = file("mx-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_civic\video\mx-video\libs\framework_classes.jar

// compile fileTree(include: ['*.jar'], dir: 'libs')      // 不注释会导致编译很慢
provided files('libs/framework_classes.jar')              // 调用但不编译进代码

 



如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网