错误:输入目录'文件'不存在

时间:2015-03-11 08:50:37

标签: java android command-line aapt

需要使用命令行从资源构建R.java文件。我使用以下Java程序执行此操作。

  

错误:输入目录“文件”不存在

这是我的代码可以任何人帮助哪个文件目录丢失。或者为什么会弹出这个错误。

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 个答案:

答案 0 :(得分: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的关注。

答案 1 :(得分:2)

我认为当目录名称中有SPACE时,您需要使用引号“”。批处理文件假定文件为程序文件中的下一个参数。

答案 2 :(得分:2)

你的错误是因为

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

此处Program Files (x86)中存在空格。

您可以查看accessing file having space in path

答案 3 :(得分:0)

我有同样的错误,但有apktool。消息指出,“错误:输入目录'ini'不存在”。什么都没有帮助,但突然我在apk_dir / apktool.yml文件中找到了下一行:

Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
    intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
            RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
    intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.getDefault());
    intent.putExtra(RecognizerIntent.EXTRA_PROMPT,
            "Speak Now");
    try {
        startActivityForResult(intent, 0);
    } catch (ActivityNotFoundException a) {
        Toast.makeText(getApplicationContext(),
                "Not supported",
                Toast.LENGTH_SHORT).show();
    }

删除这些行后错误消失了。

UPD:仅删除带引号doNotCompress: - js - '' - ini - dat - cfg - xml 的行解决问题