カテゴリー別アーカイブ: Android
Visual Studio Code, Flutter
Visual Studio Code で Flutter を利用したAndroidアプリを作成する方法です。
- Visual Studio Code の拡張機能から Dart と Flutter をインストールします。
- 「表示」-「コマンドパレット」または Ctrl + Shift + P でコマンドパレットを開きます。“Flutter: New Project” を選択します。
- 「実行」の「構成を開く」を選択して launch.json ファイルを開きます。
configurations を空にします。 - Android Emulator を開きます。
- 「実行」-「デバッグの開始」を選択します。
Visual Studio Code,React Native
Visual Studio CodeでReact NativeのAndroidアプリをデバッグする方法です。
npm install -g react-native-cli
を実行してReact-Native-Cli をインストールします。
Visual Studio Code の 「ターミナル」-「新しいターミナル」を実行してアプリを作成するフォルダーに移動します。react-native init App
を実行します。Appの箇所は任意です。
- 拡張機能の React Native Tools をインストールします。
- 「実行」の「構成を開く」を選択して launch.json ファイルを開きます。
- configurations の内容を削除します。”React Native: エミュレーター上でのAndroidの実行”を選択します。launch.jsonは次のようになります。
{
// IntelliSense を使用して利用可能な属性を学べます。
// 既存の属性の説明をホバーして表示します。
// 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Debug Android",
"cwd": "${workspaceFolder}",
"type": "reactnative",
"request": "launch",
"platform": "android"
},
]
}
上記の設定を行わないと「属性 ‘Program’ が絶対(‘extension-output-#6’)ではありません。絶対的なものにするには、プレフィックスとして ‘${WorkspaceFolder}/’ を追加することを考慮してください」のエラーダイアログが表示されます。 - App.Js ファイルを開きます。
- Android Emulator を開きます。
- 「表示」-「コマンドパレット」または Ctrl + Shift + P でコマンドパレット開きます。
- “React Native: デバイス上での Android の実行” を選択します。またはターミナルから
react-native run-android
を実行します。
ません。詳細については、「about_Execution_Policies」(https://go.microsoft.com/fwlink/?LinkID=135170) を参照してください。
発生場所 行:1 文字:1
+ react-native run-android」が発生する場合は実行ポリシーを Restrictedから RemoteSigned に変更します。
PowerShell Set-ExecutionPolicy RemoteSigned
を実行します。const App: () => React$Node
の箇所で 「any Type annotations can only be used in TypeScript files.ts(8010))」が発生する場合は、settings.json ファイルに "javascript.validate.enable": false
を挿入します。
LINEアプリ
Android版のLINEアプリで「公式アプリではありません。ダウンロードしてください。」等の通知が突然表示されるようになる(公式アカウントではないだったかもしれません。)
スマホを再起動してもLINEアプリを開くたびにこの通知が表示されるので、アップデートに失敗したのかと思い、一度アプリをアンインストールする。
Google Play から LINEアプリをダウンロードして再インストールする。上記の通知は表示されなくなり、電話番号を入力するとSMSが送られてくるがその認証番号を入力してもログイン、引き継ぎができない。Facebook認証でログインを試みるもやはりできない。
PC版のLINEアプリ(Windows, UWP)でログインを試みるも、スマホのLINEアプリに表示される認証番号を入力しないとログインできないので、結局ログインできず。
LINE(お問い合わせ) から引き継ぎができないと送信する。Facebookの設定 -アプリとウェブサイト の「LINE」の確認をクリックして表示される あなたのユーザーID を伝える。
結局解決に2日かかりました。「友達」も復元されていました。
電話番号がうまく登録できていなかったかもしれませんが難儀しました。
Android 8.1を使用しています。
LINEについて
2,3年前に使い始める。うっかりタップして電話帳(連絡先)全員にデータを送信してしまい、その仕様になじめず(Viberも当時同様に送信する仕様だった?)。スタンプをそれなりに使う。
韓国系企業がLINEを運営していると聞いて躊躇う。プライベートなやり取りは少なくなる。
チャットなど企業、各団体のLINE利用が増えてきたので再び利用回数が増える。利用が増える中で今回の不具合に直面しました。
Android Studio, dart, Hard wrap
Android Studio のエディターでdartコードの折り返しを調整する方法です。
File – Settings- Editor – Code Style – Dart の dartfmt タブを選択して Use The dartfmt tools when formatting the whole file のチェックを外します。
Wrapping and Braces タブを選択して Hard wrap at の数値を変更します(既定は80)。120に設定するとコードの1行が120字を超えたときに自動的に改行されます。Containerなどネストが深くなった時にコードが縦長になりにくくなります。
GradleException, androidx.annotation.NonNull
Android StudioでFlutterアプリを作成すると、android/app/build.gradle ファイルの GradleException の箇所、android/app/src/kotlin/ 以下の MainActivity.kt ファイルの androidx.annotation.NonNull の箇所、android/app/src/main/java/io.flutter/plugins/GeneratedPluginRegistrant.java ファイルの import androidx.annotation.Keep の Keep の箇所がそれぞれ赤字で表示されエラーが発生する。
Gradle project sync failed. が発生する。Frameworks Detected. が表示されない。Gradleでサポートされていないプロジェクト 等が表示される。
- File – Settings – Kotlin Compiler の Kotlin to JVM – Target JVM Version を 1.6 から 1.8 に変更します。プロジェクトを開きなおします。
- File – Project Structure… の Project Setting – Project の Project SDK を <NO SDK> の場合に Android API 28 Platform などに変更します。
- android/gradle.properties ファイルを android/app ディレクトリーにコピーします。またはgradle.propertiesを作成します。
- プロジェクト内の android/gradle ディレクトリーを android/app/ と / (ProjectRoot) にコピーします。gradle-wrapper.jar ファイルとgradle-wrapper.properties ファイルが含まれます。
- プロジェクト内の /.idea, /.dart_tool, /android/.idea, /android/.gradle ディレクトリーを削除します。キャッシュフォルダーと思われますので削除しても問題は発生しません。
- %userprofile% の .Android Studio 3.5/system/cache, .gradle ディレクトリーを削除します。
GradleException のエラーは依然として発生する場合があります。app/build.gradleファイルの def flutterRoot の個所を次のように書き換えると発生しなくなります。
def flutterRoot = localProperties.getProperty('flutter.sdk') if (flutterRoot == null) { throw new FileNotFoundException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") // throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") }
gradle.properties
org.gradle.jvmargs=-Xmx1536M
android.enableR8=true
android.useAndroidX=true
android.enableJetifier=true
以前の投稿です。
Tools – Flutter – Open for Editing in Android Studio を選択します。This Window で問題ないようです。
File – Settings – Kotlin Compiler の Kotlin to JVM – Target JVM Version を 1.6 から 1.8 に変更します。プロジェクトを開きなおします。
File – Project Structure… の Project Setting – Project の Project SDK を <NO SDK> の場合に Android API 28 Platform などに変更します。
File – Invalidate Chches / Restart を選択して Invalidate を実行します。
こちらのサイトの情報 (https://stackoverflow.com/questions/56607089/new-gradle-sync-is-not-supported-due-to-containing-kotlin-modules-using-an-unsup)が参考になりました。なかなか見つからなかった。
Flutter, build.gradle Release
key.properties
keyAlias='key'
keyPassword='<password from previous step>'
storeFile='<location of the key store file, such as /Users//key.jks>'
storePassword='<password from previous step>'
android/app/build.gradle
.....
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
.....
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled true
useProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
.....
Build – Flutter – Build APK を実行すると、flutter storefile path may not be null or empty string. path=’null’ エラーが発生してAPKファイルが生成されません。
(yourProject)/android/app ディレクトリーと (yourProject)/android ディレクトリーに key.properties ファイルと key.jks ファイルを配置します。build.gradle ファイルと同じディレクトリーにそれぞれ配置します。
セキュリティリーの問題がありますが直接指定する方法もあります。
keyAlias 'key'
keyPassword '<password from previous step>'
storeFile file('key.jks')
storePassword '<password from previous step>'
‘<password from previous step>‘, ‘<password from previous step>‘ 等は実際に使用するパスワードに置き換えます。
Google Play License Verification (LVL)
Android Studio 3.5 でGoogle Play License Verification (LVL) をインポートする方法です。
- File – New – Import Module .. を選択して Source directory: に [ANDROID_SDK]/extras/google/market_licensing/library を指定します。Finishをクリックします。プロジェクト内にlibrary ディレクトリーが作成され、インポートされます。
- library/src/main/java/com を android/app/src/main/java/com にコピーします。
- AndroidManifest.xmlに次の要素を追加します。
<!-- Devices >= 3 have version of Google Play that supports licensing. --> <uses-sdk android:minSdkVersion="3" /> <!-- Required permission to check licensing. --> <uses-permission android:name="com.android.vending.CHECK_LICENSE" />
Flutter
Android Studioで実機に接続できない
flutter doctor を実行してライセンスに問題がある場合に flutter doctor --android-licenses
を実行してすべてyesを選択します。RSA 鍵を受け入れる を選択します。
Androidスマホ、携帯電話の位置情報
NetmonsterをGoogle Playからダウンロードしてインストールします。GPSを使用するアプリの位置情報の取得が早くなりました。「設定」-「位置情報」-「位置情報の検出方法」で「端末のみ(GPSで現在地を取得します)」を選択すると位置がずれる症状が改善されるようです。モバイルネットワークを利用した位置情報の取得では問題が発生する場合があります(都市部、山間部で発生しやすく、郊外は比較的この問題は発生しないです)。通信が安定する効果もありそうです。
Xamarin Android project
Visual Studio で Xamarin Android プロジェクトをビルドすると、”warning XA0101: @(Content) build action is not supported” が表示される
Xamarin for Visual Studio をアップデートしてプロジェクトを作り直したところエラーが発生しなくなりました。
Android Factory Image
Nexus 7 2012 Wi-fi でファクトリーイメージを焼く方法です。
- Factory Images for Nexus Device からイメージ(LMY47V)をダウンロードします。
- USBケーブルを接続します。Nexus 7 の電源をオフにします。音量小ボタンと電源ボタンを押し続けます。または
adb reboot bootloader
を実行します。Startの文字が表示されます。
- zipファイルを展開します。
-
fastboot flashing unlock
または
fastboot oem unlock を実行します。
- flash-allを実行します。再起動します。
-
adb reboot bootloader
を実行します。 -
fastboot flashing lock
または
fastboot oem lock
を実行します。
Android AOSP
Building the System | Android Open Source Projectの手順に従って、Nexus 7 (Wi-Fi), nakasi (grouper)のビルドを行ったところ次のエラーが発生しました。
return ‘”%s”‘ % signature_line[signature_line.index(prefix) + len(prefix):]
ValueError: substring not found
make: *** [out/target/product/generic/obj/GYP/shared_intermediates/content/jni/HashSet_jni.h] Error 1
make: *** …
Traceback (most recent call last):
File “../base/android/jni_generator/jni_generator.py”, line 1527, in
sys.exit(main(sys.argv))
File “../base/android/jni_generator/jni_generator.py”, line 1518, in main
GenerateJNIHeader(input_file, output_file, options)
File “../base/android/jni_generator/jni_generator.py”, line 1401, in GenerateJNIHeader
jni_from_javap = JNIFromJavaP.CreateFromClass(input_file, options)
File “../base/android/jni_generator/jni_generator.py”, line 652, in CreateFromClass
jni_from_javap = JNIFromJavaP(stdout.split(‘\n’), options)
File “../base/android/jni_generator/jni_generator.py”, line 600, in __init__
signature=JniParams.ParseJavaPSignature(contents[lineno + 1]))]
File “../base/android/jni_generator/jni_generator.py”, line 212, in ParseJavaPSignature
return ‘”%s”‘ % signature_line[signature_line.index(prefix) + len(prefix):]
ValueError: substring not found
make: *** [out/target/product/generic/obj/GYP/shared_intermediates/content/jni/MotionEvent_jni.h] Error 1
その後ソースコードをダウンロードしなおしたところ問題なくビルドできました。
Cordova プロジェクトの新規作成
Windows の Android Studio で PhoneGap/Cordova の新規プロジェクトを作成する方法です。
- Apache Cordovaのサイトからファイルをダウンロードして展開します。
- コマンドプロンプトを開きます。bin フォルダーに移動します。
- create.bat [パス] [パッケージ名] [プロジェクト名] を実行します。
- Android Studio の Import Project を選択します。
Visual Studio 2015 RC では Visual Studio for Apache Cordova をインストールすることで Cordova の新規プロジェクトを作成できます。