しがないエンジニアのブログ

技術的な内容をメモ代わりにつらつら

androidでアプリの再起動を行う

AlarmManagerを使うとうまくいった

Intent intent = getIntent();
PendingIntent appStarter = PendingIntent.getActivity(getApplicationContext(), 0, intent, PendingIntent.FLAG_ONE_SHOT);
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), appStarter);
finish();

参考サイト

gradleやsdkのバージョンアップに伴う変更

以下のようにバージョンアップをしたので、その時の変更点をメモ

バージョン変更

  • gradle
    • 2.2.1 -> 4.4
  • gradle plugin
    • 1.3.0 -> 3.1.3
  • buildToolsVersion
    • 23.0.0 -> 28.0.1

変更点

  • gradleとgradle pluginの対応

最新版にするならandroid studioがよしなにやってくれるはず
基本的な対応表はこちら
f:id:turgure:20180802182332p:plain

個別の対応が必要な場合はstack overflowとかで調べればでてくるんじゃないすかね

  ・Android のビルドについて(Gradle) - mixi-inc/AndroidTraining
  ・Gradle と Gradle Plugin のバージョンについて


  • compile -> implementation

compileじゃなくてimplementationを使えっていうエラーが出てたので修正

  ・Android Studio - Android Studio Gradle エラー(119882)|teratail


  • flavor dimensionの設定

productFlavorsを利用する場合、flavorDimensionsに設定したdimensionを利用しなくてはいけなくなったので追加
分けたいものに対して、同じdimensionを割り振る(↓の例など)

flavorDimensions 'environment'

productFlavors {
    develop {
        dimension 'environment'
        //
    }
    staging {
        dimension 'environment'
        //
    }
    product {
        dimension 'environment'
        //
    }
}

  ・ビルド バリアントの設定  |  Android Developers
  ・【AndroidStudio 3.0】「flavor dimension」とは何?


  • lint-gradleの対応

なんか足りないって言われるので、build.gradlegoogle()を追加

allprojects {
    repositories {
        google()
        jcenter()
    }
}

  ・Could not find com.android.tools.lint:lint-gradle Android Studio 3 - Stack Overflow

これで無事にビルドが通りました。

.ideaフォルダの.gitignore

調べる機会があったのでここにまとめておきます
.ideaフォルダはandroid studioの設定について記述されたもので、ほぼ自動生成されます

チーム開発する際には、いくつか共有するのを推奨するファイルもあるため、自分が最終的に作った.ideaに関するignoreについてまとめておきます

# User-specific configurations
.idea/caches/build_file_checksums.ser
.idea/codeStyles/
.idea/compiler.xml
.idea/copyright/profiles_settings.xml
.idea/dictionaries/
.idea/libraries/
.idea/misc.xml
.idea/modules.xml
.idea/tasks.xml
.idea/scopes/scope_settings.xml
.idea/workspace.xml
.idea/.name
*.iml

参考URL