基本的にantを呼び出してAndroidアプリケーションのソースツリーをコンパイルし、adbを使用して接続されたAndroidデバイスにアプリケーションをインストールして起動するbashスクリプトがあります。
bash スクリプトには多くのオプションがありますが、基本的には AndroidManifest.xml と strings.xml を編集してパッケージとアプリ名を変更し、「android update project」を発行します。そして最後に「アリ解放」。関連するスニペットは次のとおりです。
if [ "$NEWPACKAGENAME" != "" ] ; then
echo >> AndroidManifest.xml # the loop below looses the last line,
# so we ensure that's a useless line
cat AndroidManifest.xml |
( while read ROW ; do
IS_PACKAGE_ROW=`echo $ROW | grep 'package=' | wc -l` ;
if [ $IS_PACKAGE_ROW -gt 0 ] ; then
echo " package=\"$NEWPACKAGENAME\"" >> AndroidManifest-np.xml
else
echo "$ROW" >> AndroidManifest-np.xml
fi ;
done
)
mv AndroidManifest-np.xml AndroidManifest.xml
fi
if [ "$APPNAME" != "" ] ; then
echo >> res/values/strings.xml # the loop below looses the last line,
# so we ensure that's a useless line
cat res/values/strings.xml |
( while read ROW ; do
IS_NAME_ROW=`echo $ROW | grep '<string name="app_name">' | wc -l` ;
if [ $IS_NAME_ROW -gt 0 ] ; then
echo "<string name=\"app_name\">$APPNAME</string>" >> res/values/strings-nn.xml
else
echo "$ROW" >> res/values/strings-nn.xml
fi ;
done
)
mv res/values/strings-nn.xml res/values/strings.xml
fi
rm -f bin/*.ap_* bin/*.apk*
$ANDROID update project -p .
$ANT release
スクリプトは GNU/Linux でうまく機能し、apk ファイルを作成し、adb 経由でファイルをインストールします。同じ apk ファイルをデバイスにコピーまたはダウンロードすることで、デバイスに手動でインストールできます (開発者オプションの不明なソースは明らかに既に既にアクティブ)。
ただし、MacOS X では問題があります。作成された apk ファイルは、「adb install」(スクリプト自体または手動で実行) でインストールした場合にのみ機能します。apk ファイルを Android デバイスに手動でコピーまたはダウンロードしようとすると、MacOSX で実行したときにスクリプトによって生成された apk ファイルを意味し、デバイスは通常の確認を求めますが、「アプリケーションがインストールされていません」と表示されます。
「アプリケーションがインストールされていません」問題に関するいくつかの質問を既に読みました。返信は AndroidManifest.xml 方向 (アクティビティの重複など) を指しているように見えますが、私の場合、それがどのように問題になるのか理解できません。スクリプトは Linux で動作するものとまったく同じであり、「adb install」コマンド自体を発行するときに MacOS X でも動作するためです (したがって、apk が有効である必要があります)。
すでに試した/検証済みの他のこと:
- 新しいバージョンをインストールする前にデバイスからアプリを削除する
- 署名キーは常に同じであり、デバッグ キーではありません (ただし、異なる署名を使用した場合、デバイスは以前に文句を言います)。
- http から、またはメールの添付ファイルとして apk をダウンロードする
- インストールしようとしている間、先祖代々の動きでタブレットの周りで踊っています...
4番目は(驚いたことに)一度機能しました。しかし、一度だけ、その後は二度とありません。その時、私が何をしたかはわかりません。祖先のダンスはバラバラです。そうそう、インストールする前にまったく関係のないアプリケーションを削除してしまったのです...それらのいくつかを削除しました。言うまでもなく、関係のないアプリケーションを削除しても、それ以外の場合は役に立ちませんでした。その上、二度とそれらを再インストールしたことはありません...
助言がありますか?