多くの Android 開発者と同様に、MarketPlace 用に 2 つのプログラム (デモ版と完全版) を用意したいと考えています。どちらも同じコードを使用していますが、異なるアセットを使用しています。残念ながら、パッケージの名前空間が同じであるため、両方を同じデバイスにロードすることはできません。ちなみにアセットはresフォルダではなくassetフォルダにあります。
コマンドラインから 2 番目のapkを作成し、 NetBeans/Eclipse IDE を使用してコンパイル/ビルドされた最初のapkから派生させたいと考えています。
答えはaaptとそのオプションのように見えましたが--rename-package-manifest
、使用方法が明らかにわかりません。
次の手順を実行します。
NetBeans を使用して完全な apk をビルドする
apktoolで apk を解凍します
新しいアセットを追加する
aaptでパッケージの名前を変更します
apktoolを使用してデモ版に再パックします。
ただし、ステップ 4 - aapt rename ステージが機能しません。これについてウェブ上で非常に多くのスレッドを見てきましたが、明確な例はありません。
次に、非常に単純なプログラムをテストしてみました。Hello World を使用して、次の手順を実行します。
Hello World は、コマンド ライン オプションを使用して正常に動作し、エミュレーターとデバイスの両方でビルドおよび実行されます。
ただし、aapt --rename-manifest-package
コマンドを使用すると、多くのエラーが発生します。
私が使用するコマンドは次のとおりです。
aapt パッケージ -f -v -M c:\android-sdk-windows\tools\hello\AndroidManifest.xml -S c:\android-sdk-windows\tools\hello\res —rename-package-manifest com.myname.demo
エラーは、main.xml
と の両方にあり、AndroidManifest.xml
次の形式です。
「属性 'layout_width' のリソース識別子が見つかりません」
どんなアイデアでも大歓迎です。