簡體   English   中英

Android Studio ORMLite配置文件 - 無法找到原始目錄

[英]Android Studio ORMLite Configuration File - Could Not Find 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 );
    }
}

我的平台是Windows,我無法弄清楚為什么它一直失敗“無法找到原始目錄”。

這是我的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

我正在使用ORMLite的4.45版本

您可以毫無問題地使用Android Studio,但請確保在編輯配置中選擇標准JDK和(重要!)通過選擇Android項目的“main”文件夾來修改“工作目錄”

它應該類似於:/ your_workspace / your_project / app / src / main

如果您嘗試在Android Studio中創建它,則嘗試在最頂層目錄中找到該文件夾​​(其中.idea用於例如)因此,如果您創建目錄res並且在該raw目錄中,則util將能夠創建該文件。

  1. 右鍵單擊DBConfigUtil文件並運行DBConfigUtil.main();
    1. 轉到編輯配置部分。
    2. 確保你的工作目錄是這樣的:/ home / xyz / projects / xyz_project / app / src / main
    3. 將JRE更改為JDK1.8
    4. 在發布之前部分刪除Make。

並再次運行DBConfigUtil文件。

注意:確保您有res / raw / ormlite_config.txt文件

您收到此錯誤,如果您尚未在res文件夾中創建原始文件夾。 只需在res文件夾中手動創建原始文件夾並嘗試。 這發生在MAC中的eclispse IDE中。

我不確定這對Windows是否有幫助,但我無法讓它在Mac上的Android Studio中運行,直到我將Make重新放入Run配置的Before Launch部分。 可能值得一試,以避免Android Studio和NetBeans之間交換的煩惱!

我得到了同樣的錯誤。 我忘了添加“new File()”構造。 在我添加之后它仍然給出了相同的消息。 但是當我重建這個項目時,它突然工作了。

總結一下我做了什么(MAC OSX用戶): - 確保你已經將兩個ormlite-android和ormlite-core jar文件添加到libs目錄 - 右鍵單擊​​將它們添加為項目庫 - 從ormlite指令復制OrmLiteConfigUtil指令 - 確保使用完整路徑並使用File類 - 在res樹中添加原始目錄 - 添加一個空的ormlite_config.txt - 創建構建配置

顯然,你需要在每次更改后進行重建,讓它們生效。

另一個crapy選項是,如果您的數據庫非常簡單,可以手動創建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--
#################################

正如我所說,這只是一個糟糕的解決方法,但它可能會幫助某人。 :/

更好的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);

既然我不得不從上面的所有答案中收集並撰寫正確的答案,我在這里為您提供完整的解決方案:

  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. 設置好之后,轉到配置文件,然后右鍵單擊“run ... main()”,如果第一次運行不起作用,請轉到工作室工具欄中的運行部分,單擊小箭頭並單擊“編輯配置'。 確保以下內容:

一個。 主類 - 有完整的包名,它應該自動建議你的類名。

工作目錄 - C:\\ Users \\ ... \\ app \\ src \\ main

c。使用Module:app的classpth

d.JRE:deafault

你可以放棄'制造; 一個人 - 它應該在那里

F。 就是這樣,它現在應該工作了。

我找到了一個不錯的解決方 使用單獨的IDE(不是Android Studio)來創建配置文件。 在我的情況下,我使用NetBeans IDE 7.3.1,它工作得很好。

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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM