2015-03-11 2 views
2

необходимо создать файл 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); 
    } 
} 

Here is The Directory

ответ

4

Я нашел ошибку

" -I C:\\\"Program Files (x86)\"\\Android\\android-sdk\\platforms\\android-21\\android.jar\"";

Этой линия отсутствовала начиная котировку URL, в то время как он содержит окончание quoteI исправлена ​​ошибки включения цитаты, как это:

" -I \"C:\\\"Program Files (x86)\"\\Android\\android-sdk\\platforms\\android-21\\android.jar\"" 

Спасибо @Prashant и @ Laszlo Lugosi за внимание.

2

Я думаю, вам нужно использовать цитату «», когда есть пробел в имени каталога. Пакетный файл принимает файлы как следующий параметр в Program Files.

+2

Существует не имя каталога с пространством. Я вставил снимок каталога. любезное рассмотрение. –

+1

-IC: \\ Program Files (x86) \\ Android \\ android-sdk \\ platform \\ android-21 \\ android.jar - есть пробелы в «Program Files (x86)» –

2

ваша ошибка из-за

public static String ANDROID_HOME = "C:/Program Files (x86)/Android/android-sdk"; 

здесь пространство присутствует в Program Files (x86).

Вы можете проверить accessing file having space in path

+1

Я обновил свой код и поместил цитату "" вокруг файлов программы (x86), но все та же ошибка делает мой день плохим. –

+1

вы можете использовать 'URL url = file.toURI(). ToURL();' или 'URLDecoder.decode (path);' – Prashant

0

У меня была такая же ошибка, но с apktool. Сообщение сообщает, что «ERROR: входной каталог« ini »не существует». Ничего не помогает, но вдруг я обнаружил следующие строки в apk_dir/apktool.yml файла:

doNotCompress: 
- js 
- '' 
- ini 
- dat 
- cfg 
- xml 

После удаления этих строк пошли ошибки.

UPD: удаление только строку с кавычками - '' решает проблему

+1

Вам нужно только удалить строку '- '''. Это была ошибка, исправленная в предстоящем выпуске '2.1.0'. –