別のPCで作ったAndroidのプロジェクトを別のPCで動かすまで

昨年作ったAndroidアプリがある。まあこれなんだけど。

↓↓↓

play.google.com

 

実は、別の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.

って出てたので、

f:id:asacloud9:20180420011835p:plain

 

うん、上記画像の右上ね。「Setup SDK」をクリックして、 

 

f:id:asacloud9:20180421131459p:plain

 「OK」クリック。

 

■Grade project sync failed. 

んで、 Grade project sync failed. とか出てるんで、

 

File -> Project Structure -> Project

 

f:id:asacloud9:20180422210738p:plain

 

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

 

なんて出ていたんで、ググって下記を参考に。

qiita.com

 

以下引用↓↓↓↓

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」したら、エミュで動いたー(゚∀゚)