web-dev-qa-db-ja.com

GreenDao Android Studio

Android Studio。でGreenDaoをインポートする方法について、明確なステップバイステップの説明を探しています。

私は以前ASで使用しましたが、再び機能させることができませんでした。いくつかのチュートリアルがありますが、最新バージョンのASには適用されないようです。

Githubからクローンを作成すると、サンプルプロジェクトなどが表示されます。これらの追加機能なしでGreenDaoGeneratorをインストールする方法はありますか?

最新の段階的な説明を探しているだけです。

更新:Realm.ioを使用することをお勧めします!見てみな! :-)

助けていただければ幸いです!

34
TomCB

Android Studio 2.0でテスト済み

Android Studio 0.6.1+(およびそれ以前)を使用すると、Androidプロジェクト以外のプロジェクトをAndroidプロジェクトにモジュールとして簡単に追加できます。

以下の方法を使用すると、Javaモジュール(greenDaoGenerator)およびAndroidモジュールを同じプロジェクトに含めることができます。また、スタンドアロンとしてJavaモジュールをコンパイルおよび実行することもできますJavaプロジェクト。

  1. Android StudioでAndroidプロジェクトを開きます。持っていない場合は作成します。
  2. ファイル>新規モジュールをクリックします。 Java Libraryを選択して、「次へ」をクリックします。
  3. パッケージ名などを入力し、[完了]をクリックします。 Javaプロジェクト内にAndroidモジュールが表示されます。
  4. Javaプロジェクトのbuild.gradleファイルを開き、次の依存関係を追加します

    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        compile('de.greenrobot:DaoGenerator:1.3.0')
    }
    
  5. 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プロジェクトで使用できるクラスを生成するには、次の手順に従います。

  1. トップバーrunメニューをクリックします。 構成の編集...をクリックします
  2. 新しいウィンドウで、ウィンドウの左上にあるプラス記号をクリックし、アプリケーションを選択します
  3. 新しいアプリケーション構成が表示されます。次の情報を入力します。

    1. nameなどを指定しますgreenDao。
    2. メインクラス…ボタンをクリックし、メインメソッドを持つジェネレータークラスを選択します。この場合、com.greendao.generator.ExampleDaoGeneratorです
    3. 作業ディレクトリで、Javaプロジェクトのパスを選択します。
    4. モジュールのクラスを使用で、Javaプロジェクトを選択します。 [OK]をクリックします。
    5. もう一度実行メニューに移動すると、次のように表示されます。 greendaoを実行します。正常にコンパイルされるはずです。

完了しました !!!指定したフォルダーで生成されたクラスを確認できます。この場合、/DaoExample/src-genです

注:実行メニュー-> 構成の編集をクリックして、Androidプロジェクトを再度実行できます。プロジェクトを選択して[OK]をクリックします。

45
nitesh goel

GreenDaoをAndroidに統合するプロジェクトの概要は次のとおりです。

[リファレンス Android? でGeenDaoを使用する方法]

[プロジェクトリンク: GreenDaoの例 ]

PART1:GREENDAOのセットアップ

  1. Androidプロジェクトを作成します。

  2. ファイル>新規>新規モジュールをクリックします。 Java Libraryを選択し、[次へ]をクリックします。

Img 1

  1. 次に、次のGradle依存関係を追加する必要があります。

build.gradle of Module:appで、挿入

compile 'de.greenrobot:greendao:2.1.0'

Img 2

build.gradle of Module:greendao-generatorに、挿入

compile 'de.greenrobot:greendao-generator:2.1.0'

Img 3

syncプロジェクトであることを確認してください。

Img 4

  1. MainGenerator.Javaで、

データベース構造を定義します。

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");

    }
}
  1. 実行MainGenerator.Java

enter image description here

  1. これを実行すると、メインプロジェクトフォルダーに新しく作成されたフォルダー、つまりdbが表示されます。

enter image description here

PART2:Android Projectとの統合

  1. 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" />
    
  2. 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***---------------------------------------//

}
  1. アプリを実行する前に、設定を変更したことを確認してください。enter image description here

  2. 今すぐ実行します。

パート3 – SQL DBの表示

  1. コマンドプロンプトを開きます。
  2. 次のコマンドを入力します。 enter image description here

  3. SQLite3でdbファイルを開く enter image description here

  4. SQLite3の使用 enter image description here

パート4 –エクストラ

  1. GREENDAOの構造(コアクラス)

enter image description here

4
Arjun SK

このチュートリアル for Android Studio 0.8.9を使用しましたが、すべて正常に動作します。

2
MiguelHincapieC

動作するAndroid 1.3 Preview

一番の答え(Tested on Android Studio 1.0)については、プロジェクトにそのソースフォルダーを含める必要があるかもしれません。app/build.gradleに移動します。

以下を追加してくださいAndroid block

sourceSets {

main{
    Java{
        srcDir 'src-gen'
    }
}
2
Juan Mendez

解決策:IO-Exception

  1. Daoジェネレーターからビルドに移動します。
  2. 追加:「アプリケーション」を適用
  3. 追加:mainClassName = "you.package.include.Main"
  4. アプリケーションタスク(gradleタスク)で「実行」を実行する

実行構成を手動で作成すると、なぜ機能しないのかわかりません。

1
logerom

基本的に、必要なのはJavaライブラリーモジュール(File> New> New module ..)Androidプロジェクト(Android Studioを使用していると仮定))に、public static void main(String[] args) {}内に生成コードを挿入しますこのモジュールの.Javaクラス。次に、Runを実行すると、メインアプリのモジュールでコードが生成されます。

説明付きのステップバイステップのチュートリアルについては、こちらをご覧ください ブログ投稿 .

0
lomza