別のPCで作ったAndroidのプロジェクトを別のPCで動かすまで
昨年作ったAndroidアプリがある。まあこれなんだけど。
↓↓↓
実は、別のPCで開発していたんだけど、今は別のPCを使っていて、プロジェクトをそのまま別のPCに持ってきただけだど動かなかった。
まあ、旧PCの時は、Android Studio 2.x だったし、今のPCの環境は 3.x 系。非推奨になったクラスもあったりするし。
ってことで、別のPCにAndroidプロジェクトを持ってきて動くまでのメモ書き。まあ環境は人それぞれだから、ここに書いてあることで全部解決するかどうかはわかんないけどね。
新PCでは、別のAndroidプロジェクトで開発している前提です。
■Androidプロジェクトのソース内に記述されているパスを一括置換
C:\Users\asacloud9\AppData\Local\Android\sdk
って感じの文字列がいろんなソースに記述されている模様。ってことでこれを一括置換。
うん、Android Studioのインストール場所とか、PCのユーザ名が一緒なら、同じフォルダのパスに設置するならある程度動く気がする。
Androidプロジェクトのパスを下記コマンドで一括置換。
find ./ -type f | xargs sed -i "s/hoge/piyo/g"
僕の場合は、ユーザ名を変えるだけで行けた。旧環境は会社PCだったんで、本名アカウントだったんだよね。
ただし、バイナリファイルまで一括置換してしまうかもしれないので注意。
■Module SDK is not defined.
って出てたので、
うん、上記画像の右上ね。「Setup SDK」をクリックして、
「OK」クリック。
■Grade project sync failed.
んで、 Grade project sync failed. とか出てるんで、
File -> Project Structure -> Project
Grade version を他の新PCで作ったプロジェクトに合わせて 4.1 にした。
■Error:A problem occurred configuring project ':app'.
Error:A problem occurred configuring project ':app'. > All flavors must now belong to a named flavor dimension. Learn more at https://d.android.com/r/tools/flavorDimensions-missing-error-message.html
なんて出ていたんで、ググって下記を参考に。
以下引用↓↓↓↓
productFlavors {
free {
...
}
paid {
...
}
}
これを…こうじゃ!
flavorDimensions "myType"
productFlavors {
free {
dimension "myType"
...
}
paid {
dimension "myType"
...
}
}
引用終了↑↑↑
■app\build.gradle
compileSdkVersion 26
buildToolsVersion "26.0.2"
compile 'com.android.support:appcompat-v7:26.1.0'
compile 'com.android.support:support-v4:26.1.0'
compile 'com.google.android.gms:play-services-ads:7.5.0'
って感じに、上記の値を、新PCで開発したアプリのものと値を合わせた。
■ActionBarActivity → AppCompatActivity
アプリを作った時は ActionBarActivity を使ってたんだけど、今では非推奨ってことで。
各 Activity の上部の import 文を変更。
import android.support.v7.app.ActionBarActivity;
↓↓↓↓↓
import android.support.v7.app.AppCompatActivity;
あと、各 Activity の extends を ActionBarActivity から AppCompatActivity に変更。
public class PlayActivity extends AppCompatActivity {
これくらいかな。
んで、「Clean Project」、「Rebuild Project」したら、エミュで動いたー(゚∀゚)
SSI
実は、昨年12月に親友が亡くなった。
んで、遺品の整理と言うか、まあ彼女がやってたWebページとかの契約を整理したり、無料のウェブサーバに引っ越ししたりとか。
各種パスワードを亡くなる前に僕に展開してくれるはずだったんだけど、余命宣告であと6ヶ月、って話だったのに、退院して1週間で亡くなっちゃてね。パスワードが全くわからず、さあ大変。
しかし、持つべきは彼女の友人たち。
亡くなったその日にメインMacのパスワードを割ってくれたおかげで、90%以上のパスワードが判明しております。ハッカー怖い。
先の日記でWordPressの引っ越しもそのためだったんだけど、こっちは結局僕が借りてるxreaのサーバに引っ越した。バージョンもそのまま。
んで、彼女、ネット黎明期にhi-ho でWebページを公開していたんだけど、数年前からhtmlソースが丸見えだったんだよね。
hi-ho のパスワードもわかったんで、いろいろと調べていたんだけど、Content-Type がこんなのが返ってくる。
Content-Type:text/x-server-parsed-html
なにこれ?とググると、SSI?なんと、なつい。
.htaccess に確かにそんな記述もある。拡張子をhtmlでも動かせるような設定。で、SSIでカウンターを使っていた模様。しかし、カウンターのdatファイルは、2010/4/13で止まっている。hi-ho、SSIのサービス止めたんじゃね?
ソース丸見えの中身、SSIの記載もそのまま見える。もうSSI動いてないんじゃね?
Q: SSIは利用可能ですか?
A: はい。利用可能です。ただし exec は使用できません。
ホント?今も使えるの?
> SSIをご使用の際は、拡張子を.shtmlにしてください。
この決まりは後から決めたのかなー。
とりあえず、.htaccessの名前を変更して、ブラウザリロードでWebページは普通に見えるようになった。うん、懐かしいページだ。
■追記
テストしてみたら、 .shtml では SSI では動く模様。.htmlでは、 .htaccess で設定しても動かないように変更したのかな。
WordPressをダンプして、あえてバージョンの古いWordPressへインポート
まあいろいろあってですね。
元とは異なるドメインで運用する場合 、wp_options テーブルの option_name が「siteurl」「home」の値の「option_name」を、移行先のドメインに変更が必要。
select * from wp_options where option_name = 'db_version';
このテーブルの option_value の値を、
wp-includes/version.php:$wp_db_version = xxxxx;
上記ファイル中の上記変数のバージョンにしないと、「WordPress が更新されました。ご利用いただく前に、データベースを最新バージョンに更新する必要があります。」
的なメッセージが出る。
FL Studioで自分の音をPCから鳴らさずにギターのレコーディング
FL Studio、以前のUIが大幅に変更してから、じつは慣れなくてあまり触っていなかった。
で、少し前にハードオフで、ギターシールド⇔USBになってるケーブルをジャンクで発見。久々にFL Studioを起動して繋いでみる。
見つけたケーブルは、おそらくこれかな。
んで、「Audio Settings」から「Device」に「FL Studio ASIO」、「Buffer length」は1024にしてみた。んで2トラックに録音。
あ、FL Studio12でやってます。
1トラックで、BGMを流しながら、それに合わせて録音するイメージ。
しかし、そのまま録音すると、自分の弾いたギターの音が、わずかにずれてPCから聴こえる。弾きづらい。録音中、1トラックのBGMだけを聴きながら弾きたい。自分のギターは、エフェクターからヘッドフォンとかでモニターすればいいんで。
ということで、録音中に、PCから自分のギターの音を消す方法。だけどきちんと録音される方法がこちら。
Mixerウインドウで録音するトラックを選択し、赤枠の緑色の丸部分を左クリックしたまま、マウスを下に動かすと、音が絞られる。
こんな感じに。
これでPCからの自分の音を気にせずに録音できる!(゚∀゚)
だけど、録音した音を再生する時は、これを左クリックしたまま、マウスを上に動かして音が出るようにしておかないと、再生時にも鳴りません。
よし、もうちょっとギター練習したら何か録音してみよう。
Android アプリ 初見マスター の宣伝ページ
突貫だけど、先日公開した Android アプリ「初見マスター」の宣伝ページを作製。
http://madhatter.jp/software/sightreadex/
作ったはいいけど、どこからもリンクしていないからね。
ってことで、初見演奏の練習アプリです。
オタマジャックくんが応援してくれるよ!(゚∀゚)
5年前、前職時代に一瞬だけ存在した「ハックデイ」なる時間にコーディングして、「初見マスター」のiPhone版は公開していたんだよね。んで、ソースも公開しているアカウントも前職に置いてきたから、現在はiPhone版の修正権限は僕にはないです。
そのため、Android版は1からコーディングしてます。
残念ながら、iPhone版は今は公開されていません。
64bit版対応をしなかったから、登録が削除されちゃったと思うんだけど。
当時は、前職の会社が公開しているiPhoneアプリで、唯一お金を稼いでいるアプリだったんだけどね。まあ微々たるものだったけど。
Android アプリ 初見マスター をリリースしました。
Androidアプリの課金処理の実装2
前回の書き込みに従って、Googleのサンプルで課金を実装。
「complain()」ってメソッドがあるんだけど、これって、エラー時にアラートを表示しているんだけど、「購入を途中で止めた場合」にもアラートが出るので、「complain()」メソッドを呼んでいる箇所をコメントするか、「complain()」メソッド自体を何も処理をしないようにコメントしたほうがいいかも。