Flutter プロジェクトのパッケージ化プロセスと、apk をパッケージ化した後に Android エミュレータで空白が表示される解決策は?

動機: 作成者は Flutter プロジェクトの apk をパッケージ化する必要があります。この Flutter プロジェクトでは Webview サービスが使用されます。プロジェクト名は、flutter_issue_120853 です。この記事では Android Studio 開発ツールを使用します。この記事には 2 つの部分が含まれています: 1. flutter_issue_120853 のパッケージ化プロセス; 2. Android エミュレーターで flutter_issue_120853 が空白で表示される問題の解決策。

1. flutter_issue_120853(Androidアプリ)のパッケージ化処理

1.1 署名の作成

署名を作成する前に、コンピューター上に JDK 環境が必要です (具体的なインストール手順については、Baidu を参照してください)。プロジェクトのルート ディレクトリに次のコマンドを入力します。

keytool -genkey -alias android.jks -keyalg RSA -storetype PKCS12 -validity 36500 -keystore android.jks

コマンドの説明: android.jks という名前の証明書ファイルを作成します。エイリアスも android.jks です。暗号化アルゴリズムは RSA を使用し、有効期間は 100 年で、業界標準形式は PKCS12 です。注: ここでパスを自分で設定することもできますが、作成者はこのパスを flutter_issue_120853 プロジェクトのルート ディレクトリに直接作成します。
注:
-genkey 生成ファイル
-alias エイリアス
-keyalg 暗号化アルゴリズム
-validity 有効期間
-keystore ファイル名
-storetype PKCS12 業界標準形式 PKCS12

指示に従って必要な内容を入力し、最後に「y」を入力して確認します。

1.2 証明書の詳細情報を表示する

コマンドは次のとおりです。

keytool -list -v -keystore "android.jks"

1.3 プロジェクトに署名情報を設定する

プロジェクトの Android フォルダーにkey.propertiesファイルを作成します。

=========== 粘贴如下代码 ==================
storePassword=<password from previous step>    //输入上一步创建KEY时输入的 密钥库 密码
keyPassword=<password from previous step>    //输入上一步创建KEY时输入的 密钥 密码
keyAlias=android.jks // 别名
storeFile=   //key.jks的存放路径

=========== 示例 ==================
storePassword=123456
keyPassword=123456
keyAlias=android.jks
storeFile=C:/Users/tingt/Desktop/android.jks (创建签名的路径,1.1中的介绍。)

プロジェクト ディレクトリに*/android/app/build.gradleファイルを入力し、 build.gradle* ファイルの先頭に次のコードを追加します。

// 寻找签名配置文件
def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))

build.gradleファイル内のコードを次のものに置き換えます。

=================== 替换前代码 =================
buildTypes {
    
    
    release {
    
    
        signingConfig signingConfigs.debug
    }
}

=================== 替换后代码 =================
signingConfigs {
    
    
    release {
    
    
        keyAlias keystoreProperties['keyAlias']
        keyPassword keystoreProperties['keyPassword']
        storeFile file(keystoreProperties['storeFile'])
        storePassword keystoreProperties['storePassword']
    }
}
buildTypes {
    
    
    release {
    
    
        signingConfig signingConfigs.release
    }
}

1.4 アプリケーションをパッケージ化してインストールする

flutter build apk

1.5 アプリをインストールする

通常、パッケージ化された APK は、プロジェクトのルート ディレクトリの *\build\app\outputs\apk\release\app-release.apk* に保存されます。次に、次のコマンドを実行してインストールします。

adb install C:\Users\tingt\Desktop\flutter_app\build\app\outputs\apk\release\app-release.apk

2. Android エミュレータで flutter_issue_120853 に空白が表示される問題の解決策

最初の部分では、Flutter プロジェクトがどのように APK にパッケージ化されるかを紹介しました。この章では主に、Androidエミュレータでインストールしたアプリを開いた後に空白のページが表示される問題の解決方法を紹介します。作成者が Android エミュレータで新しくインストールしたアプリを開いたとき、
ここに画像の説明を挿入します
長時間待っても指定したページが表示されないという状況に遭遇しました。
原因分析: 上記の状況の理由は、Android 開発の Flutter アプリケーションにネットワーク権限がないことが原因です。解決策は次のとおりです。

1.1 ネットワーク権限を追加する

android\app\src\profile\AndroidManifest.xmlファイルの** に次のコードを追加します。

<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

AndroidManifest.xml設定ファイルは次のとおりです:
ここに画像の説明を挿入します
apk を再パッケージし、シミュレーターでアプリを実行すると、アプリが正常に Web ページを表示できることがわかります。
ここに画像の説明を挿入します
これで完了です。

議論へようこそ…

おすすめ

転載: blog.csdn.net/csdn9874123/article/details/129813455