アンドロイド - INSTALL_FAILED_TEST_ONLYエラー解決方法

Androidのスタジオで作成したアプリをadbで直接インストールするときに、下記ガトインエラーが発生し、インストールが出来ない場合があります。 失敗の理由は、Apk、テストの目的で作られたため、一般的なインストールのコマンドでインストールすることができません。このようなアプリをTestOnlyアプリと呼びます。

$ adb install 'app-release.apk'
adb: failed to install app-release.apk: Failure [INSTALL_FAILED_TEST_ONLY: installPackageLI]

TestOnlyアプリで作成されると、以下のよう -tオプションを与えてインストールする必要があります。

$ adb install -t 'app-release.apk'

TestOnlyアプリで作成されると、フレームワークレベルで権限なく、特定の部分をデバッグするなどの支援を受けることができます。 代わりにリリースアプリで使うことができません。

Android Studioは、apkを作成するときにAndroidManifest.xmlで testOnly属性を見てTestOnly apkをビルドするかを決定します。以下のようにtrueに設定すると、TestOnly apkにビルドがされます。

<application
    android:testOnly="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme">

問題は、私のアプリで、このような設定をしていなかったと、自動的にTestOnly apkに生成されるという点です。その理由は、スタジオが自動的に testOnly=trueに設定するからです。 この値をfalseに設定する方法は、 gradle.propertiesファイルで、次の項目をfalseに設定すると、testOnlyがfalseに設定されます。

android.injected.testOnly=false

今ビルドをすると、一般的なapkが生成がされ、adbで -tオプションなしでインストールすることができます。

まとめ

アンドロイドスタジオの基本的testOnly = "true"に設定されている場合は、TestOnly apkが生成されます。 adbの -tオプションを与えて、インストールをしたり、gradle.propertiesファイルでtestOnlyオプションをoffして、一般的なapkを作成することができます。

Related Posts

codechachaCopyright ©2019 codechacha