文件: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') // 调用但不编译进代码