1、扫描文件时死循环导致
可以在循环的地方打印出扫描的具体文件,然后找到死循环的原因
development/tools/idegen/src/Configuration.java
/**
* Recursively finds .java source roots, .jar files, and excluded
* directories.
*/
private static void traverse(File directory, Set<File> sourceRoots,
Collection<File> jarFiles, Collection<File> excludedDirs,
Excludes excludes) throws IOException {
...
for (File file : files) {
// Trim preceding "./" from path.
String path = file.getPath().substring(2);
// Skip nonexistent files/diretories, e.g. broken symlinks.
if (!file.exists()) {
Log.debug("Skipped nonexistent: " + path);
continue;
}
// 新增打印位置
System.out.println("file >> " + file);
..
}
修改后重新编译出idegen.jar,重新扫描文件
2、配置excluded 文件
Android 源码很多,可以在扫描的时候就过滤掉不需要的模块,这样导入studio后也不需要再手动excluded
可在development/tools/idegen/excluded-paths文件中添加想要过滤的文件
# Exclude all prebuilts jars.
^prebuilts/.*\.jar$
// 这里我过滤了out文件夹和不需要的其他大文件
^out/
^vendor/mediatek/kernel_modules/

1293

被折叠的 条评论
为什么被折叠?



