![](/img/trans.png)
[英]Android Studio, generate Ormlite Configuration File (ormlite.txt), gradle complains "The JavaExec.main property has been deprecated."
[英]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將能夠創建該文件。
並再次運行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);
既然我不得不從上面的所有答案中收集並撰寫正確的答案,我在這里為您提供完整的解決方案:
將您的配置文件(例如“OrmliteDatabaseConfigUtil”)放在Android項目根包下 - - > app-> src-> java-> com.your_package
確保您擁有所需的所有導入文件。
添加'raw'目錄和'ormlite_config.txt“
如果您使用ormLite指南'使用表配置文件'
String configPath =“\\ res \\ raw \\ ormlite_config.txt”;
設置好之后,轉到配置文件,然后右鍵單擊“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.