Android マーケットにリリースされない Android アプリのアップグレード計画を実装しようとしています。
設計されたアプリケーション ワークフローは次のとおりです。
- ユーザーはログイン時に検証され、メイン メニュー アクティビティが起動されます。
- メイン メニュー アクティビティから私の Web サイトに、最新のバージョン コード値 (サーバー上の SQL データベースに保存) の要求が送信されます。
- 返されたバージョン コード値は、デバイスにインストールされている apk のバージョン コード値と比較されます。
- 返されたバージョン コードの値が異なる場合は、サーバーにある新しい apk ファイルがダウンロードされ、インストールされます。
アップグレード ワークフローが機能する前に、次のタスクが完了していることを確認することも重要です。
- apk の新しいバージョンは、更新された versionCode 値を使用してリリース用にコンパイルする必要があります
- versionCode 値の Web サイト データベースに格納されている値を更新する必要があります。
- 新しくコンパイルされた apk ファイルは、Web サーバー上の正しい場所にアップロードする必要があります。
ワークフローの最初の 3 つの段階を実装しましたが、4 番目の部分を実装しようとすると、「解析エラー: パッケージの解析に問題があります」というエラーが発生します。
以下は問題のあるコードです:
protected void upgradeApplication() {
StringBuilder urlBuilder = new StringBuilder(getString(R.string.website_ip) + "/" + getString(R.string.application_middleware) + "/" + getString(R.string.apk_folder) + "/");
File file = new File(urlBuilder.toString(), getString(R.string.apk_file));
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive");
startActivity(intent);
}
デバイスの Web ブラウザから直接 apk をダウンロードし、ダウンロード フォルダからインストールすることで、apk が正しくインストールされることをテストしました。しかし、アプリケーション内からインストールしようとすると、投稿されたエラーが発生します。
「解析エラー: パッケージの解析に問題があります」
どんな助けでもいただければ幸いです