Androidアプリケーションのインストール中に「解析エラー:パッケージの解析中に問題が発生しました」


104

Androidアプリケーション(Parse Error : There is a problem parsing the package.)のインストール中にこのエラーが発生しました。次の手順を実行しました。

  1. 初めてアプリケーションをインストールしたところ、問題なく動作しました。

  2. 既存のアプリケーションに変更を加え、マニフェストファイルのバージョン番号を変更しました。

    <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.openintents.samples.BasicOpenARDemo" android:versionCode="2" android:versionName="1.0.1">
  3. 次に、アプリケーションをエクスポートして、コード署名プロセスを終了します。これを行うには、プロジェクトノードを右クリックし、[エクスポート]を選択します。そこにウィザードが表示されます。手順に従い、コード署名も完了します。

  4. ARDemo.apkファイルを取得し、その名前をARDemo1.apkに変更しました

  5. 次に、このapkファイルを携帯電話のSDカードに発送し、インストールを開始したところ、上記のエラーが発生しました。

私はグーグル、彼らはマニフェストファイルの解凍に関するその問題を言う。

誰かが私に何が悪いのかを教えてもらえますか?


バージョン番号は3にしてください。wikitude Webサイトの日本語チュートリアルを参照してください

こんにちはEjder様、ご返信いただきありがとうございます。私の問題はすでに修正されました。私の間違いは「apkファイル名を手動で変更した」です。上記の2はアプリケーションのバージョンコードで、minsdkの値ではありません。私はminsdkの値を3としています。ありがとうございます。RaghavendraK
Raghu

4
なぜ名前の変更が問題になったのか考えているだけですか?
マイキー

こんにちはマイク、エクスポート後に名前を変更しました。それがエラーを出している理由です。エクスポート中に、我々はデフ名を指定した場合、それは私のために問題になることができませんでした...
ラグー

1
こんにちはCru、バージョン番号を変更してもこの問題は発生しません。エクスポートを実行したら、apkファイルの名前を変更しました。この問題が発生します。
ラグー

回答:


49

あなたはアプリケーションを初めてインストールしたときにそれがうまくいったと言いました。

2つのバージョン間で説明した手順の唯一の違いは次のとおりです。

  1. バージョン番号(これは何も壊すことに関与しなかったと思います)
  2. コード
  3. .apkファイルの名前

ARDemo1.apkファイルの名前をARDemo.apkに戻し(古いバージョンを必ずバックアップしてください)、それが役立つかどうかを確認してください。私の推測では、それはapkの名前と関係があります。

それでも機能しない場合は、問題の原因であるapkファイルの名前を削除し、古いバージョンを再ビルドして調査を開始し、同じ問題が再び発生するかどうかを確認できます。古いコードの再構築されたバージョンで問題が存在しない場合は、コードに何らかの問題があるはずです。

それがあなたをどこかに連れて行ってくれることを願っています。

乾杯、ジョセフ


こんにちはジョセフ、あなたの推測は正しいです。apkファイルの名前を以前のものに変更しました。うまくいきました……どうもありがとうございました.....
ラグー

こんにちは、私は同様の問題に直面しています。アプリケーションをWebリンクからダウンロードしています。それは完全にモバイルSDカードに座っています。しかし、インストールしようとすると、このエラーが表示されます。私は自分のアプリケーションに署名しませんでした、基本的に私はAndroidアプリ開発の初心者です。あらゆる種類のヘルプが評価されます:)
varunrao321

2
私は同様の問題に直面し、ケースは.gradleファイルの最小SDKバージョンでした。それとあなたのデバイスのバージョンについて考えてください、それは役に立ちます。
user2881604 2015年

ああ、あなたは正しいapkファイル名の問題でした...!
Arsal Imam

私は、APKファイルを名前を変更してparse errorしまっているが、今それをインストールしようとすると、それは私を示しApp not installed、私はマシュマロデバイスを使用して、ここでの問題のように、多分その同じだstackoverflow.com/questions/33930223/...
natsumiyu

45

インストールでは、少なくとも次の場合に指定されたエラーが発生する可能性があります。

  • 署名後にパッケージの名前が変更される署名されたパッケージと同じ正確な名前を使用します(代わりにマニフェストで名前を調整します)
  • パッケージはより高いAPIレベルでコンパイルされます:マニフェストファイルのAPIレベルを修正してください
  • パッケージはSDカードから実行されます:電話のメモリからapkファイルを実行(インストール)するか、adbコマンドを使用してインストールします

これを引き起こす他の条件があると思います。たとえば、メールからインストールするときにこのエラーメッセージが表示されることについては、以下のカンザシア人の回答に関する私のコメントを参照してください。
M Katz 2013年

ここでベストアンサー。私にとっては、署名後にパッケージの名前を変更することでした。どうもありがとう。
Jannie Theunissen 2013

私はあなたがそれを使用してそれをインストールすることができるように根ざした電話を持っている必要があると仮定していますadb installか?
14

いいえ、ルート権限は必要ありません。ただし、セキュリティ設定から不明なソースを有効にする必要がある場合があります。(未確認)
jmu 2014

元不明とUSBデバッグ...注:Windows 8時には、それは、MTPモードでのみPTPを携帯電話を認識しません...
スパーク

22

デバイスのAndroidバージョンがアプリのコンパイル対象のバージョンよりも低い場合にのみ、解析エラーが発生しました。たとえば、アプリがAndroid OS v2.2用にコンパイルされており、デバイスにAndroid OS v2.1しかインストールされていない場合、アプリをインストールしようとすると解析エラーが発生します。


私はしばらく前にそれに打たれました、理解するのに年齢を取りました!
olafure 2011

14

理由はapkが署名されていないためです。APKが署名されると、問題は解決されます。 http://ionicframework.com/docs/guide/publishing.html 手順のリンクを使用してAPKに署名してください。


ここでも同じ問題。apkに署名した後、それは期待どおりに機能しました。
Dino Tw 2016年

3
これは、Xamarin Androidビルドでの問題でした。最初に、署名されていないAPKがアーカイブマネージャーに作成されます。次に、「配布」を選択して、インストール可能な署名済みAPKを作成する必要があります。
dodgy_coder 2016年

書いたdodgy_coderものに追加する:ためXamarin.Android 7以上またはそれ以前のバージョン
Veverke

13

暗闇の中で撮影する代わりに、次のようにインストールして、このエラーの理由を取得しますadb

adb -s emulator-5555 install ~/path-to-your-apk/com.app.apk

emulator-5555デバイス名に置き換えます。以下を使用してリストを取得できます。

adb devices

失敗すると、それは理由を与えます。一般的な理由とその修正:

  1. INSTALL_PARSE_FAILED_NO_CERTIFICATESリファレンス
  2. INSTALL_FAILED_UPDATE_INCOMPATIBLEリファレンス

成功した場合はどうすればよいですか?
ジェイコブ・サンチェス

1
これは私を大いに助けました。ありがとう!
Tgo1014


6

SDKバージョン2.1でapkファイルをコンパイルしてエクスポートする場合、SDKエクスポート「2.1」より前のAndroidバージョンでは機能しません。Androidソフトウェアは前方互換性があり、後方互換性はありません。たとえば、C / C ++ファミリーでの開発を可能にするAndroid NDK(Android SDKへのアドオン)パッケージを使用してプログラミングしている場合、これはAndroid 2.3、Androidバージョン2.2以下とのみ互換性があり、Javaビルドのみをサポートします。したがって、「パッケージの解析に問題があります」というエラーに対処します。


3

別の可能性は、apkファイルをアプリケーションのPRIVATEフォルダーに保存してから、(コードからインテントを開始して)インストールを試行することです。この場合、インテントを開始すると、パッケージの解析エラーが発生します。この場合、発生するエラーは権限の問題に関するものです。重要なのは、ファイルをプライベートフォルダーに保存することはお勧めできませんが、本当にそれを実行したい場合は、ダウンロードするときにMODE_WORL_READABLEにファイルを書き込む必要があります。MODE_WORLD_READABLEは非推奨であり、セキュリティ上の問題があるため、このソリューションは最適ではないことを考慮してください。最善の方法は、ファイルを外部ストレージに保存することです。


3

ここでは、キーストア、パスワードなどを入力するように指示されている内容を繰り返しません。

ビルド->署名済みAPKを生成-> [入力] ---次へ---> 両方を選択

  • V1(Jar署名)
  • V2(完全APK署名)

理由はわかりませんが、少なくとも私の状況ではうまくいきました。


1
私のために働いた。Android Studio MacOSではデフォルトでチェックされていませんでした。
vojta

2

電子メールから.apkパッケージをインストールしようとしたときに、同じエラー(解析エラー、パッケージの解析に問題があります)が発生しました。サードパーティのパッケージインストーラーApKatcherをインストールすることで問題を回避することができました。

http://www.addictivetips.com/mobile/install-android-apps-from-gmail/

ApKatcherが唯一のソリューションではありません。私の同僚はAstro File Managerをインストールして問題を回避しました。

どちらのアプリケーションもAndroidマーケットプレイスで見つけることができます。


ここに別のデータポイントを追加するために、電子メールからインストールするときにもこのエラーが発生しましたが、コードとadbを使用して同じパッケージをインストールすると、正常にインストールされました。残念ながら、私はyahooメール経由でインストールしようとしていたので、ApKatcherが役に立てないと思います。
M Katz 2013年

1

同様の問題、この「借りた」コードとわずかに変更されたコードを使用:

                Intent intent = new Intent(Intent.ACTION_VIEW);
                File newApk = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "myapp.apk");
                intent.setDataAndType(Uri.fromFile(newApk), "application/vnd.android.package-archive");
                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                startActivity(intent);
                result = true;

ファイルの作成を次のように変更する必要があります(Fileコンストラクターのプラスの代わりにカンマ、ダウンロードディレクトリの後に「/」がありませんでした):

                    File newApk = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), "myapp.apk");

1

マニフェストファイルに不正なタグペアがありました。

<meta-data>
</meta-data>

基本的に、meta-datapayu pdfファイルから不正なサンプルコードをコピーしたときに入りました。くだらない。


1

1つの理由として、アクティビティの名前がマニフェストで定義されていないことが考えられます

    <activity
          android:name=""
          ...>
</activity>

上記のコードは私と同じ問題を作成していました


1

このエラーの原因となる別の問題は、制限されたSDカードのマウントポイントからAPKをインストールすること/mnt/media_rw/MicroSDです。

無制限のマウントポイントを使用し/Removable/MicroSDます。


1

そして、単に新しい読者を助けるために、別の理由はマニフェストファイルのエラーかもしれません。私は誤って入力していたandroid:serviceとしてandroid.service、同じエラーに遭遇しました...


1

@Veneet Reddyで述べられているように、ADB経由でインストールします。

ADT Bundle / sdk / platform-toolsに移動します.apk管理者としてプロンプトファイルと実行コマンド。

次に、実行中adb devicesの接続デバイスまたはエミュレーターをリストするコマンドを実行します。

ここに画像の説明を入力してください

次に実行します adb -s yourDeviceID install yourApk.apk

ここに画像の説明を入力してください

注: 既にインストールしている場合は、アプリをアンインストールしてから再インストールしてください。


0

この問題が発生している他の人にとって、このエラーが発生するのは、Androidビルド構成のAPIバージョンが物理デバイスのバージョンと一致しない場合のみです。

Eclipseに移動し、プロジェクトを右クリックして、プロパティに移動します。Androidを選択すると、Androidビルドの目標を実現できます。デバイスに合わせてターゲットを調整し、問題が解決するかどうかを確認します。


0

正しいminSDKおよびtargetSDKバージョンを指定した場合でも、この問題が発生しました。私の問題は、"android:theme="@android:style/Theme.NoTitleBar.Fullscreen"Jellybeanデバイスでランチャーアクティビティを使用していたことでした。この属性を削除したところ、うまくいきました。


0

他のいくつかの回答が述べたように、SDカードからインストールするときに問題が発生する可能性があります。私の場合、メールの添付ファイルを介してアプリを配布しており、通常は問題なく動作しました。メールを開いて添付ファイルをダウンロードし(SDカードに保存されているようです)、もう一度クリックすると、インストールされます。

しかし、ある日それは機能しませんでした、そしてそれは私が電話をUSB経由で私の開発用PCに接続していて、それがSDカードを別のモードか何かに置いていたことが原因でした。したがって、解決策は、電話をPCから切断し、電子メールを再度送信して、添付ファイルを再度ダウンロードすることでした。または、USB接続を「充電専用」モードにして、SDカードがPCに「接続」されないようにします。


0

また、デバイスのログをチェックして、アクセス許可の問題のような単純なものかどうかを確認することもできます。adbホスト/デバッグコンピューターからログを確認できます。

adb logcat

または、コンソールにアクセスできる場合(またはAndroid-x86 get consoleを使用しているときにAlt+ を入力してF1)、次のlogcatコマンドを使用してログを確認できます。

logcat

0

からエクスポートしたapkファイルを使用して同じ問題が発生しましたandroid‌ Tools > Export。代わりにbinフォルダーのapkファイルを使用しましたが、うまくいきました!

Eclipseでアプリケーションを初めて実行した後、binフォルダー内のPS apkファイルが作成されます。


0

build.gradle(Module:app)内で使用します

 minSdkVersion 14
    targetSdkVersion 28

最小バージョン14と28が対象となった理由を説明する必要があります。また、フォーマットを確認してください;)
m02ph3u5 '23

0

私はParse Error : There is a problem parsing the package. Android-8でテストしていたこの問題を抱えていました。私は同じ署名の同じapkを持っています。バージョン番号とバージョン名を除いてすべてが同じでした。アプリを手動でインストールするとアプリがインストールされていましたが、プログラムでアップデートをダウンロードしてインストールしているときにこのエラーが発生しました。その後、問題の原因を見つけました。

canRequestPackageInstalls()をチェックするオプションがありました() このメソッドがtrueを返す場合、アプリは正常にインストールされます。私の場合は常にfalseを返していました。

最初にこれを確認してから、ユーザーに更新のダウンロードとインストールを許可します。

onCreate()内

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            if (!packageManager.canRequestPackageInstalls()) {
                    startActivityForResult(
                        Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES).setData(
                            Uri.parse(String.format("package:%s", packageName))
                        ), requestCodeqInstallPackage
                    )
                } else {
                    canInstallPackage = true
                }

        }

onActivityResult()内

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
            if (requestCode == requestCodeqInstallPackage && resultCode == Activity.RESULT_OK) {
                if (packageManager.canRequestPackageInstalls()) {
                    canInstallPackage = true
                }
            } else {
                canInstallPackage = false
                Toast.makeText(mContext, "Auto update feature will not work", Toast.LENGTH_LONG)
                    .show()
            }
    }

次に、更新をインストールする必要がある場合-

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
   if(canInstallPackage){
      doInstallAppProcess()
   }else{
        // generate error message
   }
}

それが誰かを助けることを願っています。



-1

他のユーザーと同じ署名付きAPKで同じ「解析エラー:パッケージの解析に問題があります」というエラーメッセージが表示されますが、原因はさまざまであると思われます。

これをテストするために、次のことを行いました。

Windows 8.1 Eclipse ADTビルドのセットアップ:v22.6.2-1085508

すべてのデフォルトを受け入れる典型的な新しいHelloworldアプリを生成しました。

エミュレーターとライブデバイスでアプリを正常に実行しました。

次に、apkをサイドロードしてライブデバイスにインストールし、正常に実行しました。

binフォルダーにサイズが782 KBのapkが生成されていました。

次に、Helloworldアプリを同じbinフォルダーにエクスポートしました。これは、過去にGoogle Playへの宣伝に使用されてきたキーストアのアプリに署名したものです。

385 KBのサイズのAPKを作成しました(元のapkを置き換えます)。

apkをデバイスにサイドローディングし、それをインストールしようとすると、「解析エラー:パッケージの解析中に問題が発生しました」というエラーが表示されました(これは、エクスポートされていないフォームとして実行したときにサイドローディングされてインストールされたパッケージと同じです)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.