更新: これは古い投稿であり、以下の壊れたaapt
バージョンへの参照は古くなっています。
以前のフィードバックに基づいて、アプリのアセット ディレクトリにカスタム テキスト フィールドを保存しています。
アセット ファイル内のデフォルトのユーザー詳細を使用してアプリを作成します。クライアントは、アセット ファイル内のユーザーの詳細を含めて、ユーザーごとにアプリを再構築したいと考えています。
(この方法にはいくつかの重大な欠点があることは承知していますが、クライアントはまだこの方法でそれを行うことに熱心です -ユーザーごとに異なるログイン詳細をAPKファイルに埋め込む(または他のオプション?)を参照してください)
この質問は、APK ファイルを解凍し、カスタム アセット ファイルを更新した後に、APK ファイルを再構築するときに発生する問題に関連しています。小さな何かが欠けていると確信していますが、これらの方法で見つけたドキュメントと投稿は、初心者にとっては十分に役に立ちません.
aapt - Android sdk ツール: 残念ながら、Android ドキュメント [下のリンク 2] の「aapt の使用」に関する Android ドキュメントは非常に限られています。コンソール コマンド -help は、もう少し詳しい情報を表示します。それを使用してファイルをtest.apkに追加しようとすると、元のファイルが削除され、追加しようとしたファイルのみを含む新しいファイルtest.apk.zipが作成されます。解凍したapkを取得して再パッケージ化するための正しいコマンドラインの組み合わせを見つけることができませんでした-それが私の最初の賞です.
apkbuilder - Android sdk ツール: まず、このツールは非推奨であり、これはマイナス点です。また、解凍したフォルダーにあるもので動作させることもできません。apkbuilder がリソース zip アーカイブを要求し、リソース フォルダーがあるため、apkbuilder の前のステップが欠落していると思います。
ant - ビルド ツール: 他の同様の投稿では、Android ツールを使用するのではなく、ant でビルドするように指示されています。ant を動作させるのに問題があります。Android で Ant を動作させるための特定のリンク [下のリンク 3] は有望に見えますが、別の Android SDK 用のようです (Android によって生成された私の build.xml は彼のものとは異なります)。残念ながら、私は ant についてほとんど知識がなく、現在の問題を解決するのに十分な専門家になるのに苦労しています。
以下のNickTのソリューションに加えて、antスクリプトを実行すると、エラー
taskdef class com.android.ant.SetupTask cannot be found using the classloader AntClassLoader[] が表示されます。
このエラーについてオンラインでいくつかの参照を見つけました。local.properties に、Android SDK インストール フォルダー (sdk.dir=/Applications/android-sdk-mac_86) を指す sdk.dir 設定があることを確認しました。???????: 私がリスト/発見していない他のオプションがあるかもしれません。
普段は自分のアイデアで隠れているギアを掘り下げると、困難が生じる可能性があることを認識しています。しかし、多くの SO ユーザーがこれらのことの多くを行うことができることを私は知っています。助けてくれてありがとう。
(Mac Snow Leopard 10.6 64 ビット上の Eclipse 3.6)
PS、まだ複数のハイパーリンクを投稿することはできないため、これらのアドレスを含めて、質問に詳細情報を表示しました.
(1): stackoverflow.com/questions/4783160/embed-login-details-in-apk-file-different-for-each-user-or-other-options
(2): developer.android.com/guide/developing/tools/aapt.html
(3): www.disgruntledrats.com/?p=27