Android Studio。でGreenDaoをインポートする方法について、明確なステップバイステップの説明を探しています。
私は以前ASで使用しましたが、再び機能させることができませんでした。いくつかのチュートリアルがありますが、最新バージョンのASには適用されないようです。
Githubからクローンを作成すると、サンプルプロジェクトなどが表示されます。これらの追加機能なしでGreenDaoGeneratorをインストールする方法はありますか?
最新の段階的な説明を探しているだけです。
更新:Realm.ioを使用することをお勧めします!見てみな! :-)
助けていただければ幸いです!
Android Studio 2.0でテスト済み
Android Studio 0.6.1+(およびそれ以前)を使用すると、Androidプロジェクト以外のプロジェクトをAndroidプロジェクトにモジュールとして簡単に追加できます。
以下の方法を使用すると、Javaモジュール(greenDaoGenerator
)およびAndroidモジュールを同じプロジェクトに含めることができます。また、スタンドアロンとしてJavaモジュールをコンパイルおよび実行することもできますJavaプロジェクト。
Javaプロジェクトのbuild.gradleファイルを開き、次の依存関係を追加します
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile('de.greenrobot:DaoGenerator:1.3.0')
}
DaoGenerator
クラスをコピーするか、Javaモジュールにクラスがない場合は作成します。 JavaモジュールにExampleDaoGenerator
クラスを作成しました。
public class ExampleDaoGenerator {
public static void main(String[] args) throws Exception {
Schema schema = new Schema(1000, "de.greenrobot.daoexample");
addNote(schema);
new DaoGenerator().generateAll(schema, "../DaoExample/src-gen");
}
private static void addNote(Schema schema) {
Entity note = schema.addEntity("Note");
note.addIdProperty();
note.addStringProperty("text").notNull();
note.addStringProperty("comment");
note.addDateProperty("date");
}
}
Androidプロジェクトで使用できるクラスを生成するには、次の手順に従います。
新しいアプリケーション構成が表示されます。次の情報を入力します。
com.greendao.generator.ExampleDaoGenerator
です完了しました !!!指定したフォルダーで生成されたクラスを確認できます。この場合、/DaoExample/src-gen
です
注:実行メニュー-> 構成の編集をクリックして、Androidプロジェクトを再度実行できます。プロジェクトを選択して[OK]をクリックします。
GreenDaoをAndroidに統合するプロジェクトの概要は次のとおりです。
[リファレンス Android? でGeenDaoを使用する方法]
[プロジェクトリンク: GreenDaoの例 ]
PART1:GREENDAOのセットアップ
Androidプロジェクトを作成します。
ファイル>新規>新規モジュールをクリックします。 Java Libraryを選択し、[次へ]をクリックします。
build.gradle of Module:appで、挿入
compile 'de.greenrobot:greendao:2.1.0'
build.gradle of Module:greendao-generatorに、挿入
compile 'de.greenrobot:greendao-generator:2.1.0'
syncプロジェクトであることを確認してください。
データベース構造を定義します。
import de.greenrobot.daogenerator.DaoGenerator;
import de.greenrobot.daogenerator.Entity;
import de.greenrobot.daogenerator.Schema;
public class MainGenerator {
public static void main(String[] args) throws Exception {
//place where db folder will be created inside the project folder
Schema schema = new Schema(1,"com.codekrypt.greendao.db");
//Entity i.e. Class to be stored in the database // ie table LOG
Entity Word_entity= schema.addEntity("LOG");
Word_entity.addIdProperty(); //It is the primary key for uniquely identifying a row
Word_entity.addStringProperty("text").notNull(); //Not null is SQL constrain
// ./app/src/main/Java/ ---- com/codekrypt/greendao/db is the full path
new DaoGenerator().generateAll(schema, "./app/src/main/Java");
}
}
PART2:Android Projectとの統合
activity_main.xmlレイアウトを設定します。
<EditText
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:id="@+id/textData"
Android:layout_alignParentTop="true"
Android:layout_alignParentStart="true" />
<Button
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:text="Save"
Android:id="@+id/textSave"
Android:layout_below="@+id/textData"
Android:layout_alignEnd="@+id/textData"
Android:layout_marginTop="22dp" />
<Button
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:text="Show Top"
Android:id="@+id/textTop"
Android:layout_below="@+id/textSave"
Android:layout_alignParentStart="true"
Android:layout_marginTop="35dp" />
MainActivity.Javaでは、
次のコードを追加します
package com.codekrypt.greendao;
import Android.database.sqlite.SQLiteDatabase;
import Android.os.Bundle;
import Android.support.v7.app.AppCompatActivity;
import Android.view.View;
import Android.widget.Button;
import Android.widget.TextView;
import com.codekrypt.greendao.db.DaoMaster;
import com.codekrypt.greendao.db.DaoSession;
import com.codekrypt.greendao.db.LOG;
import com.codekrypt.greendao.db.LOGDao;
import Java.util.List;
public class MainActivity extends AppCompatActivity {
//Dao --> Data Access Object
private LOGDao log_dao; // Sql access object
private LOG temp_log_object; // Used for creating a LOG Object
String log_text=""; //Entered text data is save in this variable
private final String DB_NAME ="logs-db" ; //Name of Db file in the Device
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Initialise DAO
log_dao=setupDb();
//Setting up form elements
Button textSave= (Button) findViewById(R.id.textSave);
Button textTop= (Button) findViewById(R.id.textTop);
final TextView textData=(TextView) findViewById(R.id.textData);
assert textSave != null;
textSave.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
log_text=textData.getText().toString();
temp_log_object=new LOG(null,log_text);// Class Object, Id is auto increment
SaveToSQL(temp_log_object);
}
});
assert textTop != null;
textTop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
textData.setText( getFromSQL() );
}
});
}
//---------------------------------SQL QUERY Functions-----------------------------------------//
public String getFromSQL(){
List<LOG> log_list = log_dao.queryBuilder().orderDesc(LOGDao.Properties.Id).build().list();
//Get the list of all LOGS in Database in descending order
if(log_list.size()>0) { //if list is not null
return log_list.get(0).getText();
//get(0)--> 1st object
// getText() is the function in LOG class
}
return "";
}
public void SaveToSQL(LOG log_object) {
log_dao.insert(log_object);
}
//----------------------------***END SQL QUERY***---------------------------------------------//
//-------------------------------DB Setup Functions---------------------------------------------//
//Return the Configured LogDao Object
public LOGDao setupDb(){
DaoMaster.DevOpenHelper masterHelper = new DaoMaster.DevOpenHelper(this, DB_NAME, null); //create database db file if not exist
SQLiteDatabase db = masterHelper.getWritableDatabase(); //get the created database db file
DaoMaster master = new DaoMaster(db);//create masterDao
DaoSession masterSession=master.newSession(); //Creates Session session
return masterSession.getLOGDao();
}
//-------------------------***END DB setup Functions***---------------------------------------//
}
パート3 – SQL DBの表示
パート4 –エクストラ
このチュートリアル for Android Studio 0.8.9を使用しましたが、すべて正常に動作します。
動作するAndroid 1.3 Preview
一番の答え(Tested on Android Studio 1.0)については、プロジェクトにそのソースフォルダーを含める必要があるかもしれません。app/build.gradleに移動します。
以下を追加してくださいAndroid block
sourceSets {
main{
Java{
srcDir 'src-gen'
}
}
解決策:IO-Exception
実行構成を手動で作成すると、なぜ機能しないのかわかりません。
基本的に、必要なのはJavaライブラリーモジュール(File> New> New module ..)Androidプロジェクト(Android Studioを使用していると仮定))に、public static void main(String[] args) {}
内に生成コードを挿入しますこのモジュールの.Java
クラス。次に、Runを実行すると、メインアプリのモジュールでコードが生成されます。
説明付きのステップバイステップのチュートリアルについては、こちらをご覧ください ブログ投稿 .