3.0.0-rcX(Canaryチャンネルから)経由でAndroidスタジオ3.0.0(安定したチャンネルから)に到着しました。Androidスタジオ3.0.0がAPKでFLAG_TEST_ONLYに設定されているのはなぜですか?
新しいアプリを起動してビルドすると、(アプリ内の)次のコードでFLAG_TEST_ONLYフラグが設定されていることがわかります。
Log.e(TAG, "ApplicationInfo: " + (getApplicationInfo().flags & ApplicationInfo.FLAG_TEST_ONLY));
10-31 09:54:05.226 16129-16129/com.example.dummy E/MainActivity: ApplicationInfo: 256
アプリのマニフェストは、次のとおりです。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.dummy">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
フラグは、それをインストールすることができることから、デバイスポリシーコントローラを停止します。Upgrading app in background using Device Policy Controller
なぜ、このフラグが設定され、そしてどのように私はからそれを止めます設定されていますか?
AFAIK、このフラグはAndroidスタジオからアプリが実行されている場合にのみ設定されます。他の手段(例えば、 'assembleRelease' Gradleタスク)によって構築されたAPKには、このフラグはありません。したがって、Androidスタジオからアプリを実行し、結果のAPKを取得する以外の方法でアップデート用のAPKを作成します。 – CommonsWare
@CommonsWare 'rm app/build/outputs/apk/debug/app-debug.apk'と' ./gradlew assembleDebug'がこのトリックでした。それを答えると、私はそれを受け入れます。 – fadedbee
adb install -t file.apkを使用してアプリケーションをインストールする –