12

新しい Gradle ベースのビルド システムを使用するようにプロジェクトを更新しました。これは主に、デバイスを開発に使用しているため、デバイスにアプリをインストールして使用できないことに腹を立てているためです。packageNameSuffix新しいビルド システムの提供には多くの可能性が見えました。

私が直面している問題には、マニフェストのパッケージ名以外のものが関係しています。パーミッション (特に GCM の場合) や ContentProvider Authorities など、他にも固有でなければならない部分があります。サフィックスを付けてインストールしようとすると、.debugそのパッケージの GCM アクセス許可が定義されておらず、重複したプロバイダーをインストールしようとしているというエラーが表示されます。

これらの文字列の代わりにマニフェストに入れることができる変数はありますか?ビルドシステムがそれらを適切に置き換えるようにしますか?

4

4 に答える 4

1

AndroidManifest.xml 内のすべてのアプリのパッケージ名をプレースホルダー ${packageName} に置き換えたので、Manifest Merger はすべて機能します

例えば:

<uses-permission android:name="${packageName}.permission.C2D_MESSAGE" />
于 2014-12-16T01:52:58.593 に答える
1

以下を使用できます。

<permission android:name=".permission.C2D_MESSAGE"
            android:protectionLevel="signature" />
<uses-permission android:name=".permission.C2D_MESSAGE" />

で開始すると、Android は現在のパッケージ名を自動的に追加します.

于 2016-03-10T16:39:10.367 に答える