FlutterアプリをAndroidでビルドしたい。

ずっとiOS実機のみでテストしてきたけど、そろそろAndroidでもテストしなければいけない。

10:00

ということで、flutter runを走らせてみた。

※AndroidはGalaxy A32、設定アプリから開発者モードに変更済み

すると、、、

Error running <bundleID>. Default activity not found
Unable to read manifest info from /Users/tenna/Desktop/<projectName>/build/app/outputs/flutter-apk/app.apk.
No application found for TargetPlatform.android_arm64.
Is your project missing an android/app/src/main/AndroidManifest.xml?
Consider running "flutter create ." to create one.

flutter create .を走らせてみたが、当然Android Manifestファイルはあるので効果なし。

No application found for TargetPlatform.android_arm64で調べると、flutter creanしろと書いてあった。

意味なし

tennanoiMac <projectName> % flutter clean

Cleaning Xcode workspace...                                         4.5s
Deleting build...                                                1,458ms
Deleting .dart_tool...                                               3ms
Deleting .packages...                                                1ms
Deleting Generated.xcconfig...                                       0ms
Deleting flutter_export_environment.sh...                            2ms
Deleting .flutter-plugins-dependencies...                            0ms
Deleting .flutter-plugins...                                         0ms

tennanoiMac <projectName> % flutter run  

Running "flutter pub get" in sflo...                                3.7s
Launching lib/main.dart on SCG08 in debug mode...
package identifier or launch activity not found.
Please check /Users/tenna/Desktop/<projectName>/android/app/src/main/AndroidManifest.xml for errors.
No application found for TargetPlatform.android_arm64.
Is your project missing an android/app/src/main/AndroidManifest.xml?
Consider running "flutter create ." to create one.

package identifier or launch activity not found.で検索してみた。めちゃ古い記事が見つかった。

そういえばどっかのタイミングで以下を消した気がする(なんで)。

<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />

追加して、flutter run。

エラー増えた。

Warning: Mapping new ns http://schemas.android.com/repository/android/common/02 to old ns http://schemas.android.com/repository/android/common/01
Warning: Mapping new ns http://schemas.android.com/repository/android/generic/02 to old ns http://schemas.android.com/repository/android/generic/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/addon2/02 to old ns http://schemas.android.com/sdk/android/repo/addon2/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/repository2/02 to old ns http://schemas.android.com/sdk/android/repo/repository2/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/sys-img2/02 to old ns http://schemas.android.com/sdk/android/repo/sys-img2/01
../../%E3%83%86%E3%82%99%E3%83%98%E3%82%99%E3%83%AD%E3%83%83%E3%83%8F%E3%82%9A%E3%83%BC/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_datetime_picker-1.5.1/lib/flutter_datetime_picker.dart:311:32: Warning: Operand of null-aware operation '??' has type 'Color' which excludes null.
- 'Color' is from 'dart:ui'.
                 color: theme.backgroundColor ?? Colors.white,
                              ^
注意:一部の入力ファイルは推奨されないAPIを使用またはオーバーライドしています。
注意:詳細は、-Xlint:deprecationオプションを指定して再コンパイルしてください。
注意:/Users/tenna/デベロッパー/flutter/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-2.5.4/android/src/main/java/io/flutter/plugins/firebase/firestore/FlutterFirebaseFirestorePlugin.javaは推奨されないAPIを使用またはオーバーライドしています。
注意:詳細は、-Xlint:deprecationオプションを指定して再コンパイルしてください。
注意:/Users/tenna/デベロッパー/flutter/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-2.5.4/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/TransactionStreamHandler.javaの操作は、未チェックまたは安全ではありません。
注意:詳細は、-Xlint:uncheckedオプションを指定して再コンパイルしてください。
注意:/Users/tenna/デベロッパー/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_auth-3.3.14/android/src/main/java/io/flutter/plugins/firebase/auth/FlutterFirebaseAuthPlugin.javaは推奨されないAPIを使用またはオーバーライドしています。
注意:詳細は、-Xlint:deprecationオプションを指定して再コンパイルしてください。
注意:/Users/tenna/デベロッパー/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_crashlytics-2.6.2/android/src/main/java/io/flutter/plugins/firebase/crashlytics/FlutterFirebaseCrashlyticsPlugin.javaは推奨されないAPIを使用またはオーバーライドしています。
注意:詳細は、-Xlint:deprecationオプションを指定して再コンパイルしてください。
注意:/Users/tenna/デベロッパー/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_dynamic_links-4.1.3/android/src/main/java/io/flutter/plugins/firebase/dynamiclinks/FlutterFirebaseDynamicLinksPlugin.javaは推奨されないAPIを使用またはオーバーライドしています。
注意:詳細は、-Xlint:deprecationオプションを指定して再コンパイルしてください。
注意:/Users/tenna/デベロッパー/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_dynamic_links-4.1.3/android/src/main/java/io/flutter/plugins/firebase/dynamiclinks/FlutterFirebaseDynamicLinksPlugin.javaの操作は、未チェックまたは安全ではありません。
注意:詳細は、-Xlint:uncheckedオプションを指定して再コンパイルしてください。
注意:一部の入力ファイルは推奨されないAPIを使用またはオーバーライドしています。
注意:詳細は、-Xlint:deprecationオプションを指定して再コンパイルしてください。
/Users/tenna/デベロッパー/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_storage-10.2.12/android/src/main/java/io/flutter/plugins/firebase/storage/FlutterFirebaseStoragePlugin.java:205: 警告:[deprecation] Tasksの<TResult>call(Executor,Callable<TResult>)は推奨されません
   return Tasks.call(
               ^
 TResultが型変数の場合:
   メソッド <TResult>call(Executor,Callable<TResult>)で宣言されているTResult extends Object
/Users/tenna/デベロッパー/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_storage-10.2.12/android/src/main/java/io/flutter/plugins/firebase/storage/FlutterFirebaseStoragePlugin.java:217: 警告:[deprecation] Tasksの<TResult>call(Executor,Callable<TResult>)は推奨されません
   return Tasks.call(
               ^
 TResultが型変数の場合:
   メソッド <TResult>call(Executor,Callable<TResult>)で宣言されているTResult extends Object
/Users/tenna/デベロッパー/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_storage-10.2.12/android/src/main/java/io/flutter/plugins/firebase/storage/FlutterFirebaseStoragePlugin.java:226: 警告:[deprecation] Tasksの<TResult>call(Executor,Callable<TResult>)は推奨されません
   return Tasks.call(
               ^
 TResultが型変数の場合:
   メソッド <TResult>call(Executor,Callable<TResult>)で宣言されているTResult extends Object
/Users/tenna/デベロッパー/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_storage-10.2.12/android/src/main/java/io/flutter/plugins/firebase/storage/FlutterFirebaseStoragePlugin.java:239: 警告:[deprecation] Tasksの<TResult>call(Executor,Callable<TResult>)は推奨されません
   return Tasks.call(
               ^
 TResultが型変数の場合:
   メソッド <TResult>call(Executor,Callable<TResult>)で宣言されているTResult extends Object
/Users/tenna/デベロッパー/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_storage-10.2.12/android/src/main/java/io/flutter/plugins/firebase/storage/FlutterFirebaseStoragePlugin.java:249: 警告:[deprecation] Tasksの<TResult>call(Executor,Callable<TResult>)は推奨されません
   return Tasks.call(
               ^
 TResultが型変数の場合:
   メソッド <TResult>call(Executor,Callable<TResult>)で宣言されているTResult extends Object
/Users/tenna/デベロッパー/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_storage-10.2.12/android/src/main/java/io/flutter/plugins/firebase/storage/FlutterFirebaseStoragePlugin.java:259: 警告:[deprecation] Tasksの<TResult>call(Executor,Callable<TResult>)は推奨されません
   return Tasks.call(
               ^
 TResultが型変数の場合:
   メソッド <TResult>call(Executor,Callable<TResult>)で宣言されているTResult extends Object
/Users/tenna/デベロッパー/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_storage-10.2.12/android/src/main/java/io/flutter/plugins/firebase/storage/FlutterFirebaseStoragePlugin.java:285: 警告:[deprecation] Tasksの<TResult>call(Executor,Callable<TResult>)は推奨されません
   return Tasks.call(
               ^
 TResultが型変数の場合:
   メソッド <TResult>call(Executor,Callable<TResult>)で宣言されているTResult extends Object
/Users/tenna/デベロッパー/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_storage-10.2.12/android/src/main/java/io/flutter/plugins/firebase/storage/FlutterFirebaseStoragePlugin.java:295: 警告:[deprecation] Tasksの<TResult>call(Executor,Callable<TResult>)は推奨されません
   return Tasks.call(
               ^
 TResultが型変数の場合:
   メソッド <TResult>call(Executor,Callable<TResult>)で宣言されているTResult extends Object
/Users/tenna/デベロッパー/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_storage-10.2.12/android/src/main/java/io/flutter/plugins/firebase/storage/FlutterFirebaseStoragePlugin.java:312: 警告:[deprecation] Tasksの<TResult>call(Executor,Callable<TResult>)は推奨されません
   return Tasks.call(
               ^
 TResultが型変数の場合:
   メソッド <TResult>call(Executor,Callable<TResult>)で宣言されているTResult extends Object
/Users/tenna/デベロッパー/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_storage-10.2.12/android/src/main/java/io/flutter/plugins/firebase/storage/FlutterFirebaseStoragePlugin.java:331: 警告:[deprecation] Tasksの<TResult>call(Executor,Callable<TResult>)は推奨されません
   return Tasks.call(
               ^
 TResultが型変数の場合:
   メソッド <TResult>call(Executor,Callable<TResult>)で宣言されているTResult extends Object
/Users/tenna/デベロッパー/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_storage-10.2.12/android/src/main/java/io/flutter/plugins/firebase/storage/FlutterFirebaseStoragePlugin.java:352: 警告:[deprecation] Tasksの<TResult>call(Executor,Callable<TResult>)は推奨されません
   return Tasks.call(
               ^
 TResultが型変数の場合:
   メソッド <TResult>call(Executor,Callable<TResult>)で宣言されているTResult extends Object
/Users/tenna/デベロッパー/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_storage-10.2.12/android/src/main/java/io/flutter/plugins/firebase/storage/FlutterFirebaseStoragePlugin.java:372: 警告:[deprecation] Tasksの<TResult>call(Executor,Callable<TResult>)は推奨されません
   return Tasks.call(
               ^
 TResultが型変数の場合:
   メソッド <TResult>call(Executor,Callable<TResult>)で宣言されているTResult extends Object
/Users/tenna/デベロッパー/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_storage-10.2.12/android/src/main/java/io/flutter/plugins/firebase/storage/FlutterFirebaseStoragePlugin.java:388: 警告:[deprecation] Tasksの<TResult>call(Executor,Callable<TResult>)は推奨されません
   return Tasks.call(
               ^
 TResultが型変数の場合:
   メソッド <TResult>call(Executor,Callable<TResult>)で宣言されているTResult extends Object
/Users/tenna/デベロッパー/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_storage-10.2.12/android/src/main/java/io/flutter/plugins/firebase/storage/FlutterFirebaseStoragePlugin.java:411: 警告:[deprecation] Tasksの<TResult>call(Executor,Callable<TResult>)は推奨されません
   return Tasks.call(
               ^
 TResultが型変数の場合:
   メソッド <TResult>call(Executor,Callable<TResult>)で宣言されているTResult extends Object
/Users/tenna/デベロッパー/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_storage-10.2.12/android/src/main/java/io/flutter/plugins/firebase/storage/FlutterFirebaseStoragePlugin.java:434: 警告:[deprecation] Tasksの<TResult>call(Executor,Callable<TResult>)は推奨されません
   return Tasks.call(
               ^
 TResultが型変数の場合:
   メソッド <TResult>call(Executor,Callable<TResult>)で宣言されているTResult extends Object
/Users/tenna/デベロッパー/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_storage-10.2.12/android/src/main/java/io/flutter/plugins/firebase/storage/FlutterFirebaseStoragePlugin.java:584: 警告:[deprecation] Tasksの<TResult>call(Executor,Callable<TResult>)は推奨されません
   return Tasks.call(cachedThreadPool, HashMap::new);
               ^
 TResultが型変数の場合:
   メソッド <TResult>call(Executor,Callable<TResult>)で宣言されているTResult extends Object
/Users/tenna/デベロッパー/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_storage-10.2.12/android/src/main/java/io/flutter/plugins/firebase/storage/FlutterFirebaseStoragePlugin.java:589: 警告:[deprecation] Tasksの<TResult>call(Executor,Callable<TResult>)は推奨されません
   return Tasks.call(
               ^
 TResultが型変数の場合:
   メソッド <TResult>call(Executor,Callable<TResult>)で宣言されているTResult extends Object
/Users/tenna/デベロッパー/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_storage-10.2.12/android/src/main/java/io/flutter/plugins/firebase/storage/FlutterFirebaseStorageTask.java:164: 警告:[deprecation] Tasksの<TResult>call(Executor,Callable<TResult>)は推奨されません
   return Tasks.call(
               ^
 TResultが型変数の場合:
   メソッド <TResult>call(Executor,Callable<TResult>)で宣言されているTResult extends Object
/Users/tenna/デベロッパー/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_storage-10.2.12/android/src/main/java/io/flutter/plugins/firebase/storage/FlutterFirebaseStorageTask.java:181: 警告:[deprecation] Tasksの<TResult>call(Executor,Callable<TResult>)は推奨されません
   return Tasks.call(
               ^
 TResultが型変数の場合:
   メソッド <TResult>call(Executor,Callable<TResult>)で宣言されているTResult extends Object
/Users/tenna/デベロッパー/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_storage-10.2.12/android/src/main/java/io/flutter/plugins/firebase/storage/FlutterFirebaseStorageTask.java:198: 警告:[deprecation] Tasksの<TResult>call(Executor,Callable<TResult>)は推奨されません
   return Tasks.call(FlutterFirebasePlugin.cachedThreadPool, () -> storageTask.cancel());
               ^
 TResultが型変数の場合:
   メソッド <TResult>call(Executor,Callable<TResult>)で宣言されているTResult extends Object
警告20個
注意:/Users/tenna/デベロッパー/flutter/.pub-cache/hosted/pub.dartlang.org/google_sign_in_android-5.2.5/android/src/main/java/io/flutter/plugins/googlesignin/GoogleSignInPlugin.javaは推奨されないAPIを使用またはオーバーライドしています。
注意:詳細は、-Xlint:deprecationオプションを指定して再コンパイルしてください。
注意:/Users/tenna/デベロッパー/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_android-2.0.12/android/src/main/java/io/flutter/plugins/pathprovider/PathProviderPlugin.javaの操作は、未チェックまたは安全ではありません。
注意:詳細は、-Xlint:uncheckedオプションを指定して再コンパイルしてください。
注意:/Users/tenna/デベロッパー/flutter/.pub-cache/hosted/pub.dartlang.org/location-4.3.0/android/src/main/java/com/lyokone/location/FlutterLocation.javaは推奨されないAPIを使用またはオーバーライドしています。
注意:詳細は、-Xlint:deprecationオプションを指定して再コンパイルしてください。

しかし今度はビルドに成功している。これでOKなのか??と思ったが、アプリの画面がSplash Screenから変わらない。

iOSでは問題なかったが、コード側の問題かもしれない。下記を消してみる。

FlutterNativeSplash.preserve(widgetsBinding: widgetsBinding);

Hot restart(R)では変化なし。一回Quit(Q)して、再度flutter run。

。。まだSplash Screenのまま。キャッシュでやってる??

flutter cleanして、flutter run。

。。同じSplash Screenのまま。

build/app/outputs内にあるapkファイルを一度消去して、flutter runしてみた。

。。同じ。画面をタップすると以下のメッセージが出てくる。なのでフリーズしてるわけではないんだと思う。

I/ViewRootImpl@580e21[MainActivity](28401): ViewPostIme pointer 0
I/ViewRootImpl@580e21[MainActivity](28401): ViewPostIme pointer 1

Hot Restart(R)して、出てきた長い文章を読んでみる。

Restarted application in 3,565ms.
E/ShortcutBadger(28401): Unable to find launch intent for package <bundleID>
E/flutter (28401): [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: PlatformException(flutter_stripe initialization failed, The plugin failed to initialize:
E/flutter (28401): Your Main Activity class <bundleID>.MainActivity is not a subclass FlutterFragmentActivity.
E/flutter (28401): Please make sure you follow all the steps detailed inside the README: https://github.com/flutter-stripe/flutter_stripe#android
E/flutter (28401): If you continue to have trouble, follow this discussion to get some support https://github.com/flutter-stripe/flutter_stripe/discussions/538, null, null)
E/flutter (28401): #0      JSONMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:155:7)
E/flutter (28401): #1      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:177:18)
E/flutter (28401): <asynchronous suspension>
E/flutter (28401): #2      MethodChannelStripe.initialise (package:stripe_platform_interface/src/method_channel_stripe.dart:46:5)
E/flutter (28401): <asynchronous suspension>
E/flutter (28401): #3      Stripe._initialise (package:flutter_stripe/src/stripe.dart:424:5)
E/flutter (28401): <asynchronous suspension>
E/flutter (28401): #4      main (package:sflo/main.dart:48:3)
E/flutter (28401): <asynchronous suspension>
E/flutter (28401): 
W/DynamiteModule(28401): Local module descriptor class for com.google.android.gms.providerinstaller.dynamite not found.
I/DynamiteModule(28401): Considering local module com.google.android.gms.providerinstaller.dynamite:0 and remote module com.google.android.gms.providerinstaller.dynamite:0
W/ProviderInstaller(28401): Failed to load providerinstaller module: No acceptable module com.google.android.gms.providerinstaller.dynamite found. Local version is 0 and remote version is 0.
I/TetheringManager(28401): registerTetheringEventCallback:com.glogal.sflo
D/ConnectivityManager(28401): ConnectivityManager() mContext=android.app.Application@6091649 getOpPackageName()=com.glogal.sflo getBasePackageName()=com.glogal.sflo getPackageName()=com.glogal.sflo
I/com.glogal.sfl(28401): The ClassLoaderContext is a special shared library.
V/NativeCrypto(28401): Registering com/google/android/gms/org/conscrypt/NativeCrypto's 295 native methods...
W/com.glogal.sfl(28401): Accessing hidden method Ljava/security/spec/ECParameterSpec;->getCurveName()Ljava/lang/String; (greylist, reflection, allowed)
I/ProviderInstaller(28401): Installed default security provider GmsCore_OpenSSL

まず、 Unable to find launch intent for packageと言ってるな。コピペして検索してみたが、同じようなエラーの解決法は出てこない。

次に、PlatformException(flutter_stripe initialization failed, The plugin failed to initialize:と言っている。Stripe関連?

StripeのAndroid用の設定をやってなかった。

設定して、再度ビルドしたらできた!!

(完)

この記事が気に入ったらサポートをしてみませんか?