5

アプリに動的機能モジュールを実装しようとしています。アクティビティにボタンがあります。ユーザーがクリックすると、モジュールが既にインストールされているかどうかを確認します。そうでない場合は、startInstall(request) を使用してインストールを開始します。しかし、私はいつも別の状態に行きます。

コード

    if (manager.installedModules.contains("sample")) {
-----> Always go to this block 
                Toast.makeText(this, "Already Downloaded", Toast.LENGTH_SHORT).show()
                Intent().setClassName(packageName, "com.example.sample.SampleActivity")
                        .also {
                            startActivity(it)
                        }
            } else {
               // Never came to this state
                // Create request to install a feature module by name.
                val request = SplitInstallRequest.newBuilder()
                        .addModule("sample")
                        .build()
                // Load and install the requested feature module.
                manager.startInstall(request)
            }

動的機能モジュールで設定しましたonDemand="true"

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:dist="http://schemas.android.com/apk/distribution"
package="com.example.sample">

<dist:module
    dist:onDemand="true"
    dist:title="@string/title_sample">
    <dist:fusing dist:include="true" />
</dist:module>

<application>
    <activity android:name="com.example.sample.SampleActivity">
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
        </intent-filter>
    </activity>
</application>

4

3 に答える 3

-2
マニフェストに split="dynamic-feature-test" を追加します
split="split_name" : Play コア ライブラリを使用してオンデマンド モジュールをリクエストするときに、アプリが指定するモジュールの名前を定義します。
于 2018-11-13T11:10:21.847 に答える