ERROR: input directory 'Files' does not exist
ERROR: input directory 'Files' does not exist
需要使用命令行从资源构建 R.java 文件。我使用以下 Java 程序执行此操作。我得到
ERROR: input directory 'Files' does not exist
这是我的代码,任何人都可以帮助缺少哪个文件目录。或者为什么会弹出这个错误。
public static String ProjectPath = "C:\Users\Muzammil-Husnain\testing\Soothing-snow-fall";
public static String ANDROID_HOME = "C:\\"Program Files (x86)\"\Android\android-sdk";
public static void generateRfile() {
try {
File projectDirectoryFile = new File(ProjectPath);
String command = "aapt package -v -f -m "+
" -S \""+projectDirectoryFile.getCanonicalPath()+"\res\"" +
" -J \""+projectDirectoryFile.getCanonicalPath()+"\gen\"" +
" -M \""+projectDirectoryFile.getCanonicalPath()+"\AndroidManifest.xml\"" +
" -I C:\\"Program Files (x86)\"\Android\android-sdk\platforms\android-21\android.jar\"";
System.out.println("Directory Path : "+projectDirectoryFile.getCanonicalPath());
System.out.println(command);
ProcessBuilder processBuilder = new ProcessBuilder("cmd.exe", "/c", command);
processBuilder.redirectErrorStream(true);
Process process = processBuilder.start();
BufferedReader r = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while (true) {
line = r.readLine();
if (line == null) {
break;
}
System.out.println(line);
}
} catch (IOException ex) {
Logger.getLogger(RunApplicationOnPrject.class.getName()).log(Level.SEVERE, null, ex);
}
}
我认为当目录名称中有 SPACE 时,您需要使用引号 ""。批处理文件假定 Files 作为 Program Files 中的下一个参数。
你的错误是因为
public static String ANDROID_HOME = "C:/Program Files (x86)/Android/android-sdk";
此处 space 出现在 Program Files (x86)
。
你可以查看accessing file having space in path
我发现错误
" -I C:\\"Program Files (x86)\"\Android\android-sdk\platforms\android-21\android.jar\"";
此行缺少 URL 的起始引号,但它包含结尾引号我修复了错误
通过包括这样的引用:
" -I \"C:\\"Program Files (x86)\"\Android\android-sdk\platforms\android-21\android.jar\""
感谢@Prashant 和@Laszlo Lugosi 的关注。
我遇到了同样的错误,但使用了 apktool。消息指出,"ERROR: input directory 'ini' does not exist"。没有任何帮助,但我突然发现 apk_dir/apktool.yml 文件中的下一行:
doNotCompress:
- js
- ''
- ini
- dat
- cfg
- xml
删除这些行后错误消失了。
UPD:仅删除带引号的行 - ''
解决了问题
需要使用命令行从资源构建 R.java 文件。我使用以下 Java 程序执行此操作。我得到
ERROR: input directory 'Files' does not exist
这是我的代码,任何人都可以帮助缺少哪个文件目录。或者为什么会弹出这个错误。
public static String ProjectPath = "C:\Users\Muzammil-Husnain\testing\Soothing-snow-fall";
public static String ANDROID_HOME = "C:\\"Program Files (x86)\"\Android\android-sdk";
public static void generateRfile() {
try {
File projectDirectoryFile = new File(ProjectPath);
String command = "aapt package -v -f -m "+
" -S \""+projectDirectoryFile.getCanonicalPath()+"\res\"" +
" -J \""+projectDirectoryFile.getCanonicalPath()+"\gen\"" +
" -M \""+projectDirectoryFile.getCanonicalPath()+"\AndroidManifest.xml\"" +
" -I C:\\"Program Files (x86)\"\Android\android-sdk\platforms\android-21\android.jar\"";
System.out.println("Directory Path : "+projectDirectoryFile.getCanonicalPath());
System.out.println(command);
ProcessBuilder processBuilder = new ProcessBuilder("cmd.exe", "/c", command);
processBuilder.redirectErrorStream(true);
Process process = processBuilder.start();
BufferedReader r = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while (true) {
line = r.readLine();
if (line == null) {
break;
}
System.out.println(line);
}
} catch (IOException ex) {
Logger.getLogger(RunApplicationOnPrject.class.getName()).log(Level.SEVERE, null, ex);
}
}
我认为当目录名称中有 SPACE 时,您需要使用引号 ""。批处理文件假定 Files 作为 Program Files 中的下一个参数。
你的错误是因为
public static String ANDROID_HOME = "C:/Program Files (x86)/Android/android-sdk";
此处 space 出现在 Program Files (x86)
。
你可以查看accessing file having space in path
我发现错误
" -I C:\\"Program Files (x86)\"\Android\android-sdk\platforms\android-21\android.jar\"";
此行缺少 URL 的起始引号,但它包含结尾引号我修复了错误 通过包括这样的引用:
" -I \"C:\\"Program Files (x86)\"\Android\android-sdk\platforms\android-21\android.jar\""
感谢@Prashant 和@Laszlo Lugosi 的关注。
我遇到了同样的错误,但使用了 apktool。消息指出,"ERROR: input directory 'ini' does not exist"。没有任何帮助,但我突然发现 apk_dir/apktool.yml 文件中的下一行:
doNotCompress:
- js
- ''
- ini
- dat
- cfg
- xml
删除这些行后错误消失了。
UPD:仅删除带引号的行 - ''
解决了问题