Файл конфигурации Android Studio ORMLite - не удалось найти Raw Directory

Следующие примечания из предыдущего вопроса: конфигурация запуска Android Studio для создания конфигурации ORMLite

Мне удалось настроить мою конфигурацию для запуска этого одного класса, но он все еще не работает с

Could not find raw directory

Это мой источник

package com.ilopez.android.machinesounds;

import com.j256.ormlite.android.apptools.OrmLiteConfigUtil;

import java.io.File;
import java.io.IOException;
import java.sql.SQLException;

/**
 * Created by User on 7/25/13.
 */
public class DatabaseConfigUtil extends OrmLiteConfigUtil {
    private static final Class<?>[] classes = new Class[]{
            RecordedSound.class,
    };


    public static void main(String[] args) throws IOException, SQLException {
        writeConfigFile(new File("G:\\MachineSoundsProject\\MachineSounds\\src\\main\\res\\raw\\ormlite_config.txt"), classes );
    }
}

Моя платформа - это окна, и я не могу понять, почему она продолжает терпеть неудачу с "невозможно найти исходный каталог".

Это команда, которую запускает моя студия Android:

 "C:\Program Files\Java\jdk1.6.0_37\bin\java" -Didea.launcher.port=7544 "-Didea.launcher.bin.path=C:\Program Files (x86)\Android\android-studio\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files (x86)\Android\android-studio\sdk\platforms\android-17\android.jar;C:\Program Files (x86)\Android\android-studio\sdk\platforms\android-17\data\res;C:\Program Files (x86)\Android\android-studio\sdk\tools\support\annotations.jar;C:\local\Dropbox\git\MachineSoundsProject\MachineSounds\build\classes\debug;C:\Program Files (x86)\Android\android-studio\sdk\extras\android\m2repository\com\android\support\support-v4\13.0.0\support-v4-13.0.0.jar;C:\local\Dropbox\git\MachineSoundsProject\MachineSounds\libs\ormlite-android-4.45.jar;C:\local\Dropbox\git\MachineSoundsProject\MachineSounds\libs\ormlite-core-4.45.jar;C:\local\Dropbox\git\MachineSoundsProject\MachineSounds\libs\ormlite-jdbc-4.45.jar;C:\Program Files (x86)\Android\android-studio\lib\idea_rt.jar" com.intellij.rt.execution.application.AppMain com.ilopez.android.machinesounds.DatabaseConfigUtil

Я использую версию 4.45 ORMLite

Ответ 1

Если вы попытаетесь создать его в Android Studio, он попытается найти папку в самом верхнем каталоге (где.idea есть, например). Поэтому, если вы создадите реестр каталога и внутри этого raw, утилита сможет создать файл.

Ответ 2

Вы можете использовать Android Studio без проблем, но убедитесь, что в настройках редактирования выберите стандартный JDK и (важно!), Чтобы изменить "Рабочий каталог", выбрав "главную" папку вашего проекта Android

Это должно быть что-то вроде: /your_workspace/your_project/app/src/main

Ответ 3

  1. Щелкните правой кнопкой мыши файл DBConfigUtil и запустите DBConfigUtil.main();
    1. Перейдите в раздел "Редактировать конфигурацию".
    2. Убедитесь, что ваш рабочий каталог выглядит примерно так: /home/xyz/projects/xyz_project/app/src/main
    3. Изменил JRE на JDK1.8
    4. В разделе перед запуском удалите Make.
    5. ОК

и снова запустите файл DBConfigUtil.

Примечание. Убедитесь, что у вас есть файл res/raw/ormlite_config.txt.

Ответ 4

Вы получите эту ошибку, если вы еще не создали папку raw внутри папки res. Просто создайте папку raw вручную внутри папки res и попробуйте. Это происходит в среде eclispse IDE в MAC.

Ответ 5

Я не уверен, если это поможет для Windows, но я не мог заставить его работать в Android Studio на Mac, пока я не положил Make обратно в Before Launch секции конфигурации Run. Возможно, стоит пойти, чтобы избежать раздражения обмена между Android Studio и NetBeans!

Ответ 6

У меня такая же ошибка. Я забыл добавить конструкцию "новый файл()". После того, как я добавил, что он все же дал то же сообщение. Но затем, когда я перестроил проект, он внезапно работал.

Чтобы подвести итог тому, что я сделал (пользователь MAC OSX): - убедитесь, что вы добавили оба файла jar или oriteite-android и ormlite-core в каталог libs - щелкните правой кнопкой мыши, чтобы добавить их в качестве библиотеки проектов. Скопируйте инструкции OrmLiteConfigUtil из ormlite инструкций - убедитесь, что вы используете полный путь и используете класс File - добавьте исходный каталог в дерево res - добавьте пустой файл ormlite_config.txt - создайте конфигурацию сборки

По-видимому, вам нужно сделать Rebuild после каждого изменения, чтобы они имели эффект.

Ответ 7

Другой вариант терапии - если ваша база данных очень проста, создайте файл txt вручную. Здесь я оставляю файл, созданный программой, в прошлом моем проекте, который я использовал в качестве шаблона для создания вручную другого в моем текущем проекте:

#
# generated on 2013/08/15 05:07:12
#
# --table-start--
dataClass=com.alvarosantisteban.pathos.Event
tableName=events
# --table-fields-start--
# --field-start--
fieldName=id
generatedId=true
useGetSet=true
# --field-end--
# --field-start--
fieldName=sequence
useGetSet=true
# --field-end--
# --field-start--
fieldName=name
canBeNull=false
useGetSet=true
# --field-end--
# --field-start--
fieldName=day
canBeNull=false
useGetSet=true
# --field-end--
# --field-start--
fieldName=hour
useGetSet=true
# --field-end--
# --field-start--
fieldName=description
useGetSet=true
# --field-end--
# --field-start--
fieldName=location
useGetSet=true
# --field-end--
# --field-start--
fieldName=links
columnName=links
dataPersister=SERIALIZABLE
useGetSet=true
# --field-end--
# --field-start--
fieldName=isInteresting
useGetSet=true
# --field-end--
# --field-start--
fieldName=isDescriptionInGerman
useGetSet=true
# --field-end--
# --field-start--
fieldName=eventsOrigin
useGetSet=true
# --field-end--
# --field-start--
fieldName=originsWebsite
useGetSet=true
# --field-end--
# --field-start--
fieldName=themaTag
useGetSet=true
# --field-end--
# --field-start--
fieldName=typeTag
useGetSet=true
# --field-end--
# --table-fields-end--
# --table-end--
#################################

Как я уже сказал, это всего лишь дрянное обходное решение, но это может помочь кому-то. :/

Ответ 8

Лучший вариант для Android: дать и абсолютный путь для записи файла.

// Following code goes in your database configuration main method.
String ORMLITE_CONFIGURATION_FILE_NAME = "ormlite_config.txt";

/**
 * Full configuration path includes the project root path, and the location
 * of the ormlite_config.txt file appended to it.
 */
File configFile = new File(new File("").getAbsolutePath()
        .split("app" +File.separator + "build")[0] + File.separator +
        "app" + File.separator +
        "src" + File.separator +
        "main" + File.separator +
        "res" + File.separator +
        "raw" + File.separator +
        ORMLITE_CONFIGURATION_FILE_NAME);

/**
 * Pass configFile as argument in configuration file writer method.
 */
writeConfigFile(configFile);

Ответ 9

Поскольку я должен был собрать и составить правильный ответ из всех вышеперечисленных ответов, я даю вам полное решение:

  1. Поместите свой файл конфигурации (например, "OrmliteDatabaseConfigUtil") в свой корневой пакет проекта Android - → app-> src → java-> com.your_package

  2. убедитесь, что у вас есть весь импорт вашего файла.

  3. добавить 'raw' каталог и 'ormlite_config.txt'

  4. если вы используете руководство ormLite для "Использование файла конфигурации таблицы",

    String configPath = "\ res\raw\ormlite_config.txt";

  5. после настройки вверх, перейдите в свой конфигурационный файл, щелкните правой кнопкой мыши "запустить... main()" после этого, если первый запуск не будет работать, перейдите в раздел выполнения на панели инструментов студии, щелкните маленькую стрелку и щелкните мышью по кнопке ' Изменить конфигурации ". убедитесь, что:

а. основной класс - с полным именем пакета, он должен автоматически указывать имя вашего класса.

б. Рабочий каталог - C:\Users\...\app\src\main

c.Используйте classpth Module: app

d.JRE: deafault

е. вы можете отказаться от "make"; один - он должен быть там

е. вот он, теперь он должен работать.

Ответ 10

Я нашел достойное решение. Для создания файла конфигурации используйте отдельную среду IDE (не Android Studio). В моем случае я использовал IDE 7.3.1 NetBeans, и он работал нормально.

run:
Writing configurations to G:\MachineSoundsProject\MachineSounds\src\main\res\raw\ormlite_config.txt
Wrote config for class machinesoundandroidorm.RecordedSound
Done.
BUILD SUCCESSFUL (total time: 0 seconds)