15

実際のAndroidデバイスでEclipseからAndroidアプリケーションを実行する際に問題が発生しました

[実行]をクリックすると、次のエラーが表示されます。インストールエラー:INSTALL_FAILED_UID_CHANGED

Logcat:

[2012-09-09 14:38:26 - SearchApp] Android Launch!
[2012-09-09 14:38:26 - SearchApp] adb is running normally.
[2012-09-09 14:38:26 - SearchApp] Performing com.example.MainActivity activity launch
[2012-09-09 14:38:26 - SearchApp] Automatic Target Mode: using device 'cff192abd7f551f'
[2012-09-09 14:38:26 - SearchApp] Uploading SearchApp.apk onto device 'cff192abd7f551f'
[2012-09-09 14:38:27 - SearchApp] Installing SearchApp.apk...
[2012-09-09 14:38:28 - SearchApp] Installation error: INSTALL_FAILED_UID_CHANGED
[2012-09-09 14:38:28 - SearchApp] Please check logcat output for more details.
[2012-09-09 14:38:28 - SearchApp] Launch canceled!
4

11 に答える 11

11

最終的に、INSTALL_FAILED_DEXOPTおよびINSTALL_FAILED_UID_CHANGEDエラーの解決策を見つけました

さまざまなトリックを無駄にテストした後、私は最終的にこの厄介な問題を永遠に解決するための主な解決策を見つけました!

この問題はEclipseのバグが原因だと思います。、実際、eclipseは文字列名のためにビルドされたAPKファイルをコピーしてインストールすることはできません(さらに説明します)

データ/データ内のパッケージ名フォルダーを削除するなど、インターネット上でトリックを使用すると、新しいスティッキーエラー「INSTALL_FAILED_DEXOPT」が発生することを付け加えておきます。

それでは、 INSTALL_FAILED_DEXOPTINSTALL_FAILED_UID_CHANGEDを​​解決する方法を見てみましょう。

私の場合、ログ猫をチェックすると、以下の行に気づきました。

09-30 19:03:19.882: I/PackageManager(314): Running dexopt on: com.example.searchapp
09-30 19:03:19.921: E/dalvikvm(6129): Invalid name: 'search_‌country_name'
09-30 19:03:19.921: E/dalvikvm(6129): Trouble with item 226 @ offset 0x2094
09-30 19:03:19.921: E/dalvikvm(6129): Cross-item verify of section type 0004 failed
09-30 19:03:19.921: E/dalvikvm(6129): ERROR: Byte swap + verify failed
09-30 19:03:19.961: E/dalvikvm(6129): Optimization failed
09-30 19:03:19.961: W/installd(144): DexInv: --- END '/data/app/com.example.searchapp-1.apk' --- status=0xff00, process failed
09-30 19:03:19.961: E/installd(144): dexopt failed on '/data/dalvik-cache/data@app@com.example.searchapp-1.apk@classes.dex' res = 65280
09-30 19:03:19.961: W/PackageManager(314): Package couldn't be installed in /data/app/com.example.searchapp-1.apk

ご覧のとおり、2行目は次のとおりです。無効な名前:'search_‌country_name'

これはString.xmlの私の文字列名の1つです

したがって、この文字列を削除して、参照されているすべてのコードにコメントを付けます

次に、/ data / data内のパッケージ名フォルダーを削除します(実際のデバイスを使用している場合はrootアクセスが必要です。エミュレーターを使用している場合は、エミュレーターを開く前にデータをワイプするか、新しいAVDを作成します)

これで問題は解決しました!

簡単にコーディングを続けることができます!

于 2012-09-30T16:14:36.287 に答える
4

このソリューションは、ルートなしで最終的に機能しました。

$ platform-tools/adb -d install /path/to/proj/bin/foo.apk
797 KB/s (4872885 bytes in 5.963s)
pkg: /data/local/tmp/foo.apk
Success
$ platform-tools/adb -d uninstall com.example.foo.bar
Success

Eclipseからのインストールが同じAPKで機能しなかったときにこれが機能した理由を完全には理解していませんが、先に進むことができてうれしいです...

于 2013-01-17T13:36:55.357 に答える
4

私はこのすべての答えを試しましたが、効果はありません

正しくアンインストールします。

解決策:パッドを再起動するだけ

于 2014-07-02T16:01:38.900 に答える
2

アプリケーションが正しくアンインストールされなかった可能性があります。データフォルダが抜けている可能性があります。そのため、アプリケーションのデータフォルダを手動で削除して、アプリケーションのインストールを再試行してください。

于 2012-09-18T04:57:32.917 に答える
0

または、エミュレーターを削除して、新たに再構成します。

于 2012-12-31T07:49:27.583 に答える
0

誰か助けてくれるかもしれない...

デバッグ用のルートデバイスがあります。アプリケーションデータを/data/data/my.packageからバックアップし、後でadbシェルで復元することがあります。復元する前に、my.packageフォルダーを削除し、他のサブフォルダーとファイルを再作成してコピーします。この後、次の変更でEclipseからプロジェクトを実行すると、INSTALL_FAILED_UID_CHANGEDエラーが発生します。

私の間違い:my.packageフォルダーを削除するべきではありませんでした。このフォルダー内のすべてのみを削除する必要があります。これは、フォルダーを再作成すると、新しい所有者フォルダーmy.packageが取得されるためです。

于 2013-07-24T17:30:27.320 に答える
0

それには回避策があります。ルートデバイスがなく、/ data / data /フォルダにもアクセスできない場合は、デバイスをリセットするだけです。データフォルダからすべてが削除され、クリーンなアプリを再度インストールできます。唯一の欠点は、すべてが携帯電話から消去されることです。

于 2013-10-18T18:29:15.240 に答える
0

エミュレータでこの問題が発生しました。avdを削除して、新しいものを作成しました。問題は解決しました。

于 2014-01-03T23:44:34.777 に答える
0

別のUIDが割り当てられた、インストールしようとしているパッケージの名前のデータディレクトリがすでに存在します。ルートアクセスを取得してから、cmdで次のコマンドを使用して既存のディレクトリを削除してみてください

  rm -r /data/data/com.your.package

または、アプリケーションパッケージの名前を変更して、デバイスで実行してみてください。

于 2014-09-09T15:37:39.787 に答える
0

だから、もしあなたがこれを見つけるためにこれを降りてきたら..何もあなたのために働いていないかもしれません。ただし、これには簡単な修正があります。それは明らかに不適切なアンインストールが原因です(おそらくケーブル接続の欠陥が原因です)。

解決策PlayストアからSDMaidを ダウンロードし、Corpseファイル(ジャンクファイル)を削除します。アプリケーションを再実行します。(ただし、デバイスをルート化する必要があります)

于 2015-11-07T23:51:54.693 に答える
0

この解決策は私のために働いた:

  1. APKをデバイスのストレージ/SDカードに入れます

  2. adb shell pm install -l -r "/sdcard/<apk_filename>.apk"

于 2016-01-11T08:24:30.083 に答える