Javaファイルのライブラリー化について

178 views
Skip to first unread message

リックス

unread,
Dec 26, 2014, 4:08:24 AM12/26/14
to android-g...@googlegroups.com
リックスです

今まで作ったファイルのライブラリー化をしようと思います

共通部分をjarファイルにして呼び出して使いたいのですが
呼び出すところまではできたのですが、どうしてもボタンを
押すとシステムが落ちてしまいます

どこがおかしいかアドバイスいただけないでしょうか??

ライブラリー化ファイルソースここから

public class base_file_lib extends Activity{

public static int VIBRATION=1; //0:OFF 1:ON(DEfault)

    public static int Screen_Color=1;  //0:Red,1:Green(Default),2:Blue

/** Called when the activity is first created. */

//Base file 共通class ここから

 

     public void clear()  //画面消去

    {

    TextView screen_view = (TextView ) findViewById(R.id.view_screen);

    screen_view.setText(R.string.Clear);

    }

    public void show_screen1(int Message)

    {

    TextView screen_view = (TextView )findViewById(R.id.view_screen);

    screen_view.setMovementMethod(ScrollingMovementMethod.getInstance());

    screen_view.setText(Message);

    }

    public void show_screen2(int Message,int flag)

    {

    TextView screen_view = (TextView )findViewById(R.id.view_screen);

    String buf_screen=String.format(getString(Message),flag);

    screen_view.setMovementMethod(ScrollingMovementMethod.getInstance());

    screen_view.setText(buf_screen);

    }

    public void show_screen3(int Message,int flag,int flag2)

    {

    TextView screen_view = (TextView )findViewById(R.id.view_screen);

    String buf_screen=String.format(getString(Message),flag,flag2);

    screen_view.setMovementMethod(ScrollingMovementMethod.getInstance());

    screen_view.setText(buf_screen);

    

    }

    public void ON_OFF_Vibrate(int vibrate)

    {

    switch(vibrate)

    {

    case 1: //1:ONのとき、バイブを鳴らす

    vibration();

        break;

    case 0:

        break;

    }

    }

    //バイブレート

    public void vibration() 

    {

    Vibrator vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE); 

    long[] pattern = new long[]{0,350,500};

    vibrator.vibrate(pattern, -1); 

    }     

 //Menu部分 ここまで

    //Menu部分 ここまで

    public  void SetColor1(int color)

    {

    

    TableLayout Screen_color = (TableLayout)findViewById(R.id.Screen_Color);

    Resources res = getResources();

    //"オレンジ", "緑(Default)", "青","ピンク","白"

        int Orenge_color = res.getColor(R.color.Orenge);

        int Lime_color = res.getColor(R.color.Lime);

        int Blue_color = res.getColor(R.color.Blue);

        int Pink_color = res.getColor(R.color.Pink);

        int Gray_color = res.getColor(R.color.Gray);

        

    switch(color)

    {

    case 0:

    Screen_color.setBackgroundColor(Orenge_color);

    break;

    case 1:

    Screen_color.setBackgroundColor(Lime_color);

        break;

    case 2:

    Screen_color.setBackgroundColor(Blue_color);

    break;

    case 3:

Screen_color.setBackgroundColor(Pink_color);

break;

    case 4:

Screen_color.setBackgroundColor(Gray_color);

break;

    }

    }


    //エラーダイアログ

    public void Errordialog()

    {

    AlertDialog.Builder AlertDlgBldr = new AlertDialog.Builder(this);   

    AlertDlgBldr.setTitle(R.string.Error_dialog_Title);  

    AlertDlgBldr.setMessage(R.string.Error_dialog_Message);  

    AlertDlgBldr.setPositiveButton(R.string.OK, new DialogInterface.OnClickListener() {  


        public void onClick(DialogInterface dialog, int which) {

        

        }  

          

    });

    AlertDialog AlertDlg = AlertDlgBldr.create();  

    AlertDlg.show();

    }

    //バージョン

    public void Versiondialog()

    {

    AlertDialog.Builder AlertDlgBldr = new AlertDialog.Builder(this);   

    AlertDlgBldr.setTitle(R.string.Version_Title);  

    AlertDlgBldr.setMessage(R.string.VersionMessage);  

    AlertDlgBldr.setPositiveButton(R.string.OK, new DialogInterface.OnClickListener() {  

        public void onClick(DialogInterface dialog, int which

        {

        

        }  

          

    });

    AlertDialog AlertDlg = AlertDlgBldr.create();  

    AlertDlg.show();

    }

    //Yes no dialogのひな形 

    public void Yes_No_Dialog_base()

    {

     new AlertDialog.Builder(this)

         .setTitle("Hello, AlertDialog!")

         .setPositiveButton(

          R.string.Yes

           new DialogInterface.OnClickListener() {

             @Override

             public void onClick(DialogInterface dialog, int which) {  

             }

           })

         .setNegativeButton(

         R.string.No

           new DialogInterface.OnClickListener() {

             @Override

             public void onClick(DialogInterface dialog, int which) {  

             }

         })

         .show();

    }

 //Base file 共通class ここまで

 

}

ライブラリー化ファイルソースここまで

以上のソースをEclipseでjarに変換しました

それをlibsフォルダに入れて
呼び出し
以下のような感じで呼び出しました

public class base_project_file extends Activity implements View.OnClickListener{

    /** Called when the activity is first created. */

//base.file.jp.base_file_lib lib = new base.file.jp.base_file_lib();

static base.file.jp.base_file_lib lib;

        .

        .

        .



}

こんな感じで定義して

lib.show_screen1(R.string.clear);

という感じで呼んでいます

これでアンダーライン等でなくなり、コンパイルまでできましたが

ボタンを押すと強制終了されます

どこがおかしいのでしょうか?




Hirokazu Fukami

unread,
Dec 26, 2014, 4:19:08 AM12/26/14
to android-g...@googlegroups.com
こんにちはfkmです。

単なるjarファイルには、リソースファイル(res配下)を含めることができません。
ライブラリプロジェクトを作り、aarを作成してGradle(Android Studio)から使うようにしましょう。

--
このメールは Google グループのグループ「日本Androidの会」に登録しているユーザーに送られています。
このグループから退会し、グループからのメールの配信を停止するには android-group-j...@googlegroups.com にメールを送信してください。
このグループに投稿するには android-g...@googlegroups.com にメールを送信してください。
http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。

リックス

unread,
Dec 26, 2014, 4:58:27 AM12/26/14
to android-g...@googlegroups.com
fkm様

返事ありがとうございます

>>ライブラリプロジェクトを作り、aarを作成してGradle(Android Studio)から使うようにしましょう。
Eclipseを使っているのですが、AndroidStudioに切り替えるべきでしょうか?
以前、AndroidStudioに行きかけましたが、失敗してEclipseに戻りました


2014年12月26日 18:18 Hirokazu Fukami <fkm...@gmail.com>:

Hirokazu Fukami

unread,
Dec 26, 2014, 5:04:10 AM12/26/14
to android-g...@googlegroups.com
こんにちはfkmです。

Eclipseを使っているのですが、AndroidStudioに切り替えるべきでしょうか?

公式で
「you should migrate to Android Studio to receive all the latest IDE updates.」
というアナウンスが出ています。
(1.0が出た直後は、as soon as possible(今すぐ乗り換えろ)と書かれていましたが、
 やや表現がやわらかくなっています)

kacodama

unread,
Jan 8, 2015, 12:53:57 AM1/8/15
to android-g...@googlegroups.com
eclipseでもAndroidのライブラリプロジェクトを作れますよ。
New -> Android Application Project で、「Mark this project as a library」にチェックを入れればいいです。

なお、ライブラリプロジェクト内ではリソースidをswitch〜caseに使えません。
if文でやりましょう。

×
switch(resid){
case R.id.btn1:
break;
}

if(resid==R.id.btn1){}


kacodama

unread,
Jan 8, 2015, 12:57:12 AM1/8/15
to android-g...@googlegroups.com
補足です。
Androidライブラリプロジェクトを参照する側は、
Project -> Properties -> Android -> Library で追加するだけで使えます。


2015年1月8日木曜日 14時53分57秒 UTC+9 kacodama:
Reply all
Reply to author
Forward
0 new messages