AndroidManifestのアクティビティscreenOrientationをgradleのbuild.configから動的に設定する方法はありますか?AndroidManifestのアクティビティを設定するscreen flotごとに異なる
私は、回転を可能にするフレーバーと、肖像画のみである別のフレーバーを持つ必要があります。
私はhttp://tools.android.com/tech-docs/new-build-system/user-guide/manifest-mergerを通して読んだことがありますが、その例は通常の文字列ラベルでしか機能しないようです。
私は2つの方法を試みました。 GradleののmanifestPlaceholdersで
: build.gradle:AndroidManifest.xmlを持つ
productFlavors {
flavorRotation {
manifestPlaceholders = [ROTATION_PREF: "unspecified"]
}
flavorNoRotation {
manifestPlaceholders = [ROTATION_PREF: "portrait"]
}
}
:
...
<activity android:name=".ui.ActivityName"
android:screenOrientation="${ROTATION_PREF}"/>
...
これは動作するようには思えない、エラーが与えられていないが、回転ISN」私が "flavorNoRotation"を構築するときに肖像画にロックされていません。
とのGradleのresValueで試してみました: build.gradle:マニフェストと
productFlavors {
flavorRotation {
resValue "string", "orientation", "unspecified"
}
flavorNoRotation {
resValue "string", "orientation", "portrait"
}
}
:
...
<activity android:name=".ui.ActivityName"
android:screenOrientation="@string/orientation"/>
...
この方法で、それは罰金のビルドが、私は、デバイスにインストールしようとすると、それだけで失敗しますAndroidスタジオにメッセージ: "メッセージINSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTIONでインストールできませんでした。 既存のバージョンのapkをアンインストールして再インストールすると、この問題が解決される可能性があります。
「OK」をクリックすると、「APKのインストール中にエラーが発生しました。だから、 、どのような方法があり、ビルドタイプ/味の間で異なる向きを持っている
私はBaseActivityでプログラムこれを行うことを避けることを好むだろう
編集:?。 申し訳ありませんが、私が試しましたsの周りを遊ぶ私が実際に試した最初の方法はうまくいきます。自分のデバイスに間違ったビルドフレーバーをインストールすることで、私は早期にミスを犯したに違いない。
唯一の問題は、Android Studioの上に警告を与えることです:それは罰金と仕事構築していきますが、「アンドロイドscreenOrientation =」$ {ROTATION_PREFは}」プロパティは、それはそれを見つけることができないと言って
ありがとう。 。解答の試行
私も同様の問題に直面していますが、私の場合、@stringリソースを使用してlaunchModeを調整しようとしていますが、エラーなしで正常にビルドできますが、インストールによってINSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTIONが与えられ、 –
@DavidCheung私がやった最初の方法を試してみてください。私はlaunchmodeで試してコンパイルして、うまくインストールします。例えば。 build.gradle:manifestPlaceholders = [LAUNCHMODE: "singleTop"]次にAndroidManifestで: 。私は文字列リソースで試してみたときと同じ問題がありました。 –
jesobremonte