18

アプリの 1 つ (パッケージ名は com.netbiscuits.kicker) で、Android 2.3.X デバイスにいくつか問題があります。ただし、APK をインストールできません。LogCat に次のメッセージが表示され、Eclipse (デバッグ キーストア) から直接インストールしようとしました。

05-02 09:29:03.671: D/PackageManager(279): Scanning package com.netbiscuits.kicker
05-02 09:29:03.671: E/PackageManager(279): Package com.netbiscuits.kicker has mismatched uid: 10124 on disk, 10134 in settings
05-02 09:29:03.671: I/PackageManager(279): Linking native library dir for /data/app/com.netbiscuits.kicker-1.apk
05-02 09:29:03.681: D/installd(126): DexInv: --- BEGIN '/data/app/com.netbiscuits.kicker-1.apk' ---
05-02 09:29:06.641: D/dalvikvm(2530): creating instr width table
05-02 09:29:07.451: D/dalvikvm(2530): DexOpt: 'Lorg/apache/commons/codec/Decoder;' has an earlier definition; blocking out
05-02 09:29:07.451: D/dalvikvm(2530): DexOpt: 'Lorg/apache/commons/codec/DecoderException;' has an earlier definition; blocking out
05-02 09:29:07.451: D/dalvikvm(2530): DexOpt: 'Lorg/apache/commons/codec/Encoder;' has an earlier definition; blocking out
05-02 09:29:07.451: D/dalvikvm(2530): DexOpt: 'Lorg/apache/commons/codec/EncoderException;' has an earlier definition; blocking out
05-02 09:29:07.451: D/dalvikvm(2530): DexOpt: 'Lorg/apache/commons/codec/StringEncoderComparator;' has an earlier definition; blocking out
05-02 09:29:07.451: D/dalvikvm(2530): DexOpt: 'Lorg/apache/commons/codec/language/DoubleMetaphone$DoubleMetaphoneResult;' has an earlier definition; blocking out
05-02 09:29:07.451: D/dalvikvm(2530): DexOpt: 'Lorg/apache/commons/codec/language/SoundexUtils;' has an earlier definition; blocking out
05-02 09:29:07.451: D/dalvikvm(2530): DexOpt: 'Lorg/apache/commons/codec/net/RFC1522Codec;' has an earlier definition; blocking out
05-02 09:29:07.591: D/dalvikvm(2530): DexOpt: 'Lorg/apache/commons/codec/BinaryDecoder;' has an earlier definition; blocking out
05-02 09:29:07.591: D/dalvikvm(2530): DexOpt: 'Lorg/apache/commons/codec/BinaryEncoder;' has an earlier definition; blocking out
05-02 09:29:07.591: D/dalvikvm(2530): DexOpt: 'Lorg/apache/commons/codec/StringDecoder;' has an earlier definition; blocking out
05-02 09:29:07.591: D/dalvikvm(2530): DexOpt: 'Lorg/apache/commons/codec/StringEncoder;' has an earlier definition; blocking out
05-02 09:29:07.641: D/dalvikvm(2530): DexOpt: 'Lorg/apache/commons/codec/binary/BinaryCodec;' has an earlier definition; blocking out
05-02 09:29:07.641: D/dalvikvm(2530): DexOpt: 'Lorg/apache/commons/codec/binary/Hex;' has an earlier definition; blocking out
05-02 09:29:07.641: D/dalvikvm(2530): DexOpt: 'Lorg/apache/commons/codec/language/DoubleMetaphone;' has an earlier definition; blocking out
05-02 09:29:07.641: D/dalvikvm(2530): DexOpt: 'Lorg/apache/commons/codec/language/Metaphone;' has an earlier definition; blocking out
05-02 09:29:07.641: D/dalvikvm(2530): DexOpt: 'Lorg/apache/commons/codec/language/RefinedSoundex;' has an earlier definition; blocking out
05-02 09:29:07.641: D/dalvikvm(2530): DexOpt: 'Lorg/apache/commons/codec/language/Soundex;' has an earlier definition; blocking out
05-02 09:29:07.641: D/dalvikvm(2530): DexOpt: 'Lorg/apache/commons/codec/net/BCodec;' has an earlier definition; blocking out
05-02 09:29:07.641: D/dalvikvm(2530): DexOpt: 'Lorg/apache/commons/codec/net/QCodec;' has an earlier definition; blocking out
05-02 09:29:07.641: D/dalvikvm(2530): DexOpt: 'Lorg/apache/commons/codec/net/QuotedPrintableCodec;' has an earlier definition; blocking out
05-02 09:29:07.641: D/dalvikvm(2530): DexOpt: 'Lorg/apache/commons/codec/net/URLCodec;' has an earlier definition; blocking out
05-02 09:29:07.671: D/dalvikvm(2530): DexOpt: 'Lorg/apache/commons/codec/binary/Base64;' has an earlier definition; blocking out
05-02 09:29:07.751: D/dalvikvm(2530): DexOpt: couldn't find field Landroid/graphics/BitmapFactory$Options;.inMutable
05-02 09:29:07.971: I/dalvikvm(2530): DexOpt: illegal method access (call Lcom/google/ads/AdRequest;.<init> ()V from Lcom/adtech/mobilesdk/publisher/mediation/admob/AdmobConfiguration;)
05-02 09:29:08.271: D/dalvikvm(2530): DexOpt: couldn't find field Landroid/content/res/Configuration;.smallestScreenWidthDp
05-02 09:29:08.721: I/dalvikvm(2530): DexOpt: not resolving ambiguous class 'Lorg/apache/commons/codec/binary/Hex;'
05-02 09:29:08.801: D/dalvikvm(2530): DexOpt: couldn't find static field
05-02 09:29:08.921: D/dalvikvm(2530): DexOpt: not verifying 'Lorg/apache/commons/codec/Decoder;': multiple definitions
05-02 09:29:08.921: D/dalvikvm(2530): DexOpt: not verifying 'Lorg/apache/commons/codec/DecoderException;': multiple definitions
05-02 09:29:08.921: D/dalvikvm(2530): DexOpt: not verifying 'Lorg/apache/commons/codec/Encoder;': multiple definitions
05-02 09:29:08.921: D/dalvikvm(2530): DexOpt: not verifying 'Lorg/apache/commons/codec/EncoderException;': multiple definitions
05-02 09:29:08.921: D/dalvikvm(2530): DexOpt: not verifying 'Lorg/apache/commons/codec/StringEncoderComparator;': multiple definitions
05-02 09:29:08.921: I/dalvikvm(2530): DexOpt: not resolving ambiguous class 'Lorg/apache/commons/codec/binary/Hex;'
05-02 09:29:08.931: D/dalvikvm(2530): DexOpt: not verifying 'Lorg/apache/commons/codec/language/DoubleMetaphone$DoubleMetaphoneResult;': multiple definitions
05-02 09:29:08.931: D/dalvikvm(2530): DexOpt: not verifying 'Lorg/apache/commons/codec/language/SoundexUtils;': multiple definitions
05-02 09:29:08.941: D/dalvikvm(2530): DexOpt: not verifying 'Lorg/apache/commons/codec/net/RFC1522Codec;': multiple definitions
05-02 09:29:08.941: I/dalvikvm(2530): DexOpt: not resolving ambiguous class 'Lorg/apache/commons/codec/DecoderException;'
05-02 09:29:10.001: D/dalvikvm(2530): DexOpt: not verifying 'Lorg/apache/commons/codec/BinaryDecoder;': multiple definitions
05-02 09:29:10.001: D/dalvikvm(2530): DexOpt: not verifying 'Lorg/apache/commons/codec/BinaryEncoder;': multiple definitions
05-02 09:29:10.001: D/dalvikvm(2530): DexOpt: not verifying 'Lorg/apache/commons/codec/StringDecoder;': multiple definitions
05-02 09:29:10.001: D/dalvikvm(2530): DexOpt: not verifying 'Lorg/apache/commons/codec/StringEncoder;': multiple definitions
05-02 09:29:10.001: I/dalvikvm(2530): DexOpt: not resolving ambiguous class 'Lorg/apache/commons/codec/binary/Base64;'
05-02 09:29:10.001: I/dalvikvm(2530): DexOpt: not resolving ambiguous class 'Lorg/apache/commons/codec/binary/Base64;'
05-02 09:29:10.341: E/dalvikvm(2530): LinearAlloc exceeded capacity (5242880), last=728
05-02 09:29:10.341: E/dalvikvm(2530): VM aborting
05-02 09:29:10.448: I/DEBUG(120): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
05-02 09:29:10.448: I/DEBUG(120): Build fingerprint: 'SEMC/LT15i_1247-1044/LT15i:2.3.4/4.0.2.A.0.69/uv_v3w:user/release-keys'
05-02 09:29:10.448: I/DEBUG(120): pid: 2530, tid: 2530  >>> /system/bin/dexopt <<<
05-02 09:29:10.448: I/DEBUG(120): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr deadd00d
05-02 09:29:10.448: I/DEBUG(120):  r0 fffffe84  r1 deadd00d  r2 00000026  r3 00000000
05-02 09:29:10.448: I/DEBUG(120):  r4 6ca9f600  r5 004ffee4  r6 005001c4  r7 0001a82c
05-02 09:29:10.448: I/DEBUG(120):  r8 000002d8  r9 00000000  10 0000000e  fp 000560a8
05-02 09:29:10.448: I/DEBUG(120):  ip 6ca9f70c  sp 7eea9740  lr 6fd192b9  pc 6ca402c8  cpsr 20000030
05-02 09:29:10.448: I/DEBUG(120):  d0  6472656767756265  d1  746963617061636e
05-02 09:29:10.448: I/DEBUG(120):  d2  0000000600000067  d3  2ab070600000000a
05-02 09:29:10.448: I/DEBUG(120):  d4  2acb49782ab07060  d5  0000000800000002
05-02 09:29:10.448: I/DEBUG(120):  d6  2ab088302ac5d248  d7  0000000c2ac880f0
05-02 09:29:10.448: I/DEBUG(120):  d8  0000020c0db232fe  d9  0000000000000000
05-02 09:29:10.448: I/DEBUG(120):  d10 0000000000000000  d11 0000000000000000
05-02 09:29:10.448: I/DEBUG(120):  d12 0000000000000000  d13 0000000000000000
05-02 09:29:10.448: I/DEBUG(120):  d14 0000000000000000  d15 0000000000000000
05-02 09:29:10.448: I/DEBUG(120):  d16 0000000000000000  d17 0000000000000000
05-02 09:29:10.448: I/DEBUG(120):  d18 0000000000000000  d19 0000000000000000
05-02 09:29:10.448: I/DEBUG(120):  d20 0000000000000000  d21 0000000000000000
05-02 09:29:10.448: I/DEBUG(120):  d22 0000000000000000  d23 0000000000000000
05-02 09:29:10.448: I/DEBUG(120):  d24 0000000000000000  d25 0000000000000000
05-02 09:29:10.448: I/DEBUG(120):  d26 0000000000000000  d27 0000000000000000
05-02 09:29:10.448: I/DEBUG(120):  d28 0000000000000000  d29 0000000000000000
05-02 09:29:10.448: I/DEBUG(120):  d30 0000000000000000  d31 0000000000000000
05-02 09:29:10.448: I/DEBUG(120):  scr 00000000
05-02 09:29:10.471: I/DEBUG(120):          #00  pc 000402c8  /system/lib/libdvm.so
05-02 09:29:10.471: I/DEBUG(120):          #01  pc 0004846e  /system/lib/libdvm.so
05-02 09:29:10.471: I/DEBUG(120):          #02  pc 00064a84  /system/lib/libdvm.so
05-02 09:29:10.471: I/DEBUG(120):          #03  pc 00064e90  /system/lib/libdvm.so
05-02 09:29:10.471: I/DEBUG(120):          #04  pc 000656bc  /system/lib/libdvm.so
05-02 09:29:10.471: I/DEBUG(120):          #05  pc 000658fe  /system/lib/libdvm.so
05-02 09:29:10.481: I/DEBUG(120):          #06  pc 0006513e  /system/lib/libdvm.so
05-02 09:29:10.481: I/DEBUG(120):          #07  pc 0005712c  /system/lib/libdvm.so
05-02 09:29:10.481: I/DEBUG(120):          #08  pc 0005349a  /system/lib/libdvm.so
05-02 09:29:10.481: I/DEBUG(120):          #09  pc 000553c2  /system/lib/libdvm.so
05-02 09:29:10.481: I/DEBUG(120):          #10  pc 000555fe  /system/lib/libdvm.so
05-02 09:29:10.481: I/DEBUG(120):          #11  pc 00056fd0  /system/lib/libdvm.so
05-02 09:29:10.481: I/DEBUG(120):          #12  pc 00057022  /system/lib/libdvm.so
05-02 09:29:10.481: I/DEBUG(120):          #13  pc 00055e4e  /system/lib/libdvm.so
05-02 09:29:10.481: I/DEBUG(120):          #14  pc 00055efc  /system/lib/libdvm.so
05-02 09:29:10.481: I/DEBUG(120):          #15  pc 00056000  /system/lib/libdvm.so
05-02 09:29:10.491: I/DEBUG(120): code around pc:
05-02 09:29:10.491: I/DEBUG(120): 6ca402a8 447a4479 f7d14c0b 2000e982 ea86f7d1
05-02 09:29:10.491: I/DEBUG(120): 6ca402b8 447c4809 6bdb5823 4798b103 22264902
05-02 09:29:10.491: I/DEBUG(120): 6ca402c8 f7d1700a bf00eaee deadd00d 00043947
05-02 09:29:10.491: I/DEBUG(120): 6ca402d8 00045505 0005f342 fffffe84 4b09b40e
05-02 09:29:10.491: I/DEBUG(120): 6ca402e8 4c09b517 aa05447b f852591b 6b5b1b04
05-02 09:29:10.491: I/DEBUG(120): code around lr:
05-02 09:29:10.491: I/DEBUG(120): 6fd19298 4a0e4b0d e92d447b 589c41f0 26004680
05-02 09:29:10.491: I/DEBUG(120): 6fd192a8 686768a5 f9b5e006 b113300c 47c04628
05-02 09:29:10.491: I/DEBUG(120): 6fd192b8 35544306 37fff117 6824d5f5 d1ef2c00
05-02 09:29:10.491: I/DEBUG(120): 6fd192c8 e8bd4630 bf0081f0 00028284 ffffff88
05-02 09:29:10.491: I/DEBUG(120): 6fd192d8 b086b570 f602fb01 9004460c a804a901
05-02 09:29:10.491: I/DEBUG(120): stack:
05-02 09:29:10.491: I/DEBUG(120):     7eea9700  2ab06280  
05-02 09:29:10.491: I/DEBUG(120):     7eea9704  2acc3620  
05-02 09:29:10.491: I/DEBUG(120):     7eea9708  6caa51a0  
05-02 09:29:10.491: I/DEBUG(120):     7eea970c  6ca9f600  
05-02 09:29:10.491: I/DEBUG(120):     7eea9710  6fd4272c  
05-02 09:29:10.491: I/DEBUG(120):     7eea9714  6fd426d8  
05-02 09:29:10.491: I/DEBUG(120):     7eea9718  00000000  
05-02 09:29:10.491: I/DEBUG(120):     7eea971c  6fd192b9  /system/lib/libc.so
05-02 09:29:10.491: I/DEBUG(120):     7eea9720  0005f342  
05-02 09:29:10.491: I/DEBUG(120):     7eea9724  004ffee4  
05-02 09:29:10.491: I/DEBUG(120):     7eea9728  005001c4  
05-02 09:29:10.491: I/DEBUG(120):     7eea972c  0001a82c  
05-02 09:29:10.491: I/DEBUG(120):     7eea9730  000002d8  
05-02 09:29:10.491: I/DEBUG(120):     7eea9734  6fd183b1  /system/lib/libc.so
05-02 09:29:10.491: I/DEBUG(120):     7eea9738  df002777  
05-02 09:29:10.491: I/DEBUG(120):     7eea973c  e3a070ad  
05-02 09:29:10.491: I/DEBUG(120): #00 7eea9740  0001a828  
05-02 09:29:10.491: I/DEBUG(120):     7eea9744  6ca48473  /system/lib/libdvm.so
05-02 09:29:10.491: I/DEBUG(120): #01 7eea9748  000002d8  
05-02 09:29:10.491: I/DEBUG(120):     7eea974c  000002d8  
05-02 09:29:10.491: I/DEBUG(120):     7eea9750  2ce60443  
05-02 09:29:10.491: I/DEBUG(120):     7eea9754  2acc3620  
05-02 09:29:10.491: I/DEBUG(120):     7eea9758  000560a8  
05-02 09:29:10.491: I/DEBUG(120):     7eea975c  2c8a5190  
05-02 09:29:10.491: I/DEBUG(120):     7eea9760  7eea97d8  
05-02 09:29:10.501: I/DEBUG(120):     7eea9764  00000000  
05-02 09:29:10.501: I/DEBUG(120):     7eea9768  0000000e  
05-02 09:29:10.501: I/DEBUG(120):     7eea976c  6ca64a89  /system/lib/libdvm.so
05-02 09:29:10.531: W/installd(126): DexInv: --- END '/data/app/com.netbiscuits.kicker-1.apk' --- status=0x000b, process failed
05-02 09:29:10.531: E/installd(126): dexopt failed on '/data/dalvik-cache/data@app@com.netbiscuits.kicker-1.apk@classes.dex' res = 11
05-02 09:29:10.541: W/PackageManager(279): Package couldn't be installed in /data/app/com.netbiscuits.kicker-1.apk
05-02 09:29:10.541: I/BootReceiver(279): Copying /data/tombstones/tombstone_07 to DropBox (SYSTEM_TOMBSTONE)
05-02 09:29:10.641: D/dalvikvm(279): GC_EXPLICIT freed 1059K, 34% free 10358K/15623K, external 4874K/6087K, paused 90ms
05-02 09:29:10.671: D/AndroidRuntime(2519): Shutting down VM
05-02 09:29:10.671: D/dalvikvm(2519): GC_CONCURRENT freed 215K, 71% free 304K/1024K, external 0K/0K, paused 0ms+1ms
05-02 09:29:10.671: D/dalvikvm(2519): Debugger has detached; object registry had 1 entries
05-02 09:29:11.411: I/iddd-events(129): Event com.sonyericsson.idd.probe.android.devicemonitor::ApplicationCrash was discarded since it was not active.

また、署名付き APK を Google Play ストアから直接インストールしようとしました。エラーメッセージ「パッケージファイルが無効です」で失敗しました。

この問題は、少数の Android 2.3.x デバイスでのみ発生するようで、その理由はまったくわかりません。私はネイティブの NDK コードを使用しておらず、ライブラリに apache commons が含まれているかどうかを既に確認しましたが、何も異常は見つかりませんでした。

なにか提案を?

4

4 に答える 4

8

問題定義

標準インストール中に、「dexopt」と呼ばれるプログラムが実行され、アプリがインストールされている特定の電話用にアプリが準備されます。Dexopt は、固定サイズのバッファー (「LinearAlloc」バッファーと呼ばれる) を使用して、アプリ内のすべてのメソッドに関する情報を保存します。最近のバージョンの Android は 8 MB または 16 MB のバッファを使用しますが、Froyo と Gingerbread (バージョン 2.2 および 2.3) は 5 MB しかありません。古いバージョンの Android のバッファは比較的小さいため、多数のメソッドがバッファ サイズを超えており、dexopt がクラッシュしていました。

これはあなたの問題のバグです

ソリューション:

  1. Proguard: Proguard は、参照されていないクラス/メソッドをアプリから削除します。したがって、アプリの dex ファイルのサイズが減少します。(私はプロガードで私の問題を解決しました)
  2. 複数の dex ファイル:アプリを複数の dex ファイルに分割します。Facebook にはこれに対する解決策があります。複数のdexファイルを管理するためのこのリンクも読んで
于 2014-05-07T09:49:47.083 に答える
7

問題は、プロジェクト設定で定義した API が、現在使用している APK ビルド バージョンと一致するかサポートされている携帯電話のバージョンと適切に動作するように互換性がなければならないことです。そのため、AndroidManifest.xml と含まれている .jar 設定で API の互換性を確認してください。この種の頭痛の種を安全に回避するための良い方法は、複数のAPKを公開することです。

ここに画像の説明を入力

複数の APK を公開することに決めたら、公開する予定の APK ごとに個別の Android プロジェクトを作成して、個別に適切に開発できるようにする必要があります。これは、既存のプロジェクトを複製して新しい名前を付けるだけで実行できます。または、ビルド構成に基づいてテクスチャなどのさまざまなリソースを出力できるビルド システムを使用することもできます。

ここに画像の説明を入力

アプリケーション コードの大部分の重複を避ける 1 つの方法は、ライブラリプロジェクトを使用することです。ライブラリ プロジェクトは、実際のアプリケーション プロジェクトに含めることができる共有コードとリソースを保持します。

ここに画像の説明を入力
(出典: technotalkative.com )

同じアプリに対して複数のプロジェクトを作成する場合は、簡単に識別できるように、 APKに適用されるデバイス制限を示す名前で各プロジェクトを識別することをお勧めします。たとえば、「myAPP08」は、API レベル 8 以上用に設計されたアプリケーションに適した名前です。

ここに画像の説明を入力
(ソース: se-mc.com )

Android マーケットのデベロッパー コンソールで複数の APK を有効にするには、想定している Android バージョンと一致する APK バージョンを提供していることを確認してください。ライブラリ プロジェクトを使用することは、アプリのリリースを準備するときに、品質を確保し、互換性の問題を回避するのに役立つ追加の手順です。詳細に注意を払うことに注意を払うほど、より良い.

ここに画像の説明を入力

最終的に最も重要なことは、APKが信頼性が高く、多数の異なるデバイスでスムーズに動作することです。

于 2014-05-07T09:01:02.790 に答える
0

アプリのパッケージ名がPackage has mismatched uid: 10124 on disk, 10134 in settings存在するフォルダー/data/data/xyz/が原因でエラーが発生しました。xyz

このメッセージにはフォルダが存在し、現在インストールされている (10134) とは異なる所有者 (10124) を持っています。以前のクリーンでないインストールが原因です。

たとえば、以前のインストールはいくつかのエラーで失敗し、作成されたフォルダーを削除しません。

フォルダーには他のアプリのデータが含まれている可能性があるため、Androidはそれを使用できません。PackageManagerさまざまな方法で修正を試みますが、これができない場合は、アプリの別のディレクトリを取得して、このメッセージを表示します。

より良い解決策 - アプリをインストールし、きれいに削除してください。その後、再度インストールしてください。

別の解決策 - いくつかの方法でフォルダーを削除します/data/data/xyz/。これにはルートが必要な場合があります。

からのコードPackageManager(コメントは非常に役立つ場合があります):

            // This is a normal package, need to make its data directory.
        dataPath = getDataPathForPackage(pkg.packageName, 0);

        boolean uidError = false;

        if (dataPath.exists()) {
            // XXX should really do this check for each user.
            mOutPermissions[1] = 0;
            FileUtils.getPermissions(dataPath.getPath(), mOutPermissions);

            // If we have mismatched owners for the data path, we have a problem.
            if (mOutPermissions[1] != pkg.applicationInfo.uid) {
                boolean recovered = false;
                if (mOutPermissions[1] == 0) {
                    // The directory somehow became owned by root.  Wow.
                    // This is probably because the system was stopped while
                    // installd was in the middle of messing with its libs
                    // directory.  Ask installd to fix that.
                    int ret = mInstaller.fixUid(pkgName, pkg.applicationInfo.uid,
                            pkg.applicationInfo.uid);
                    if (ret >= 0) {
                        recovered = true;
                        String msg = "Package " + pkg.packageName
                                + " unexpectedly changed to uid 0; recovered to " +
                                + pkg.applicationInfo.uid;
                        reportSettingsProblem(Log.WARN, msg);
                    }
                }
                if (!recovered && ((parseFlags&PackageParser.PARSE_IS_SYSTEM) != 0
                        || (scanMode&SCAN_BOOTING) != 0)) {
                    // If this is a system app, we can at least delete its
                    // current data so the application will still work.
                    int ret = mInstaller.remove(pkgName, 0);
                    if (ret >= 0) {
                        // TODO: Kill the processes first
                        // Remove the data directories for all users
                        sUserManager.removePackageForAllUsers(pkgName);
                        // Old data gone!
                        String prefix = (parseFlags&PackageParser.PARSE_IS_SYSTEM) != 0
                                ? "System package " : "Third party package ";
                        String msg = prefix + pkg.packageName
                                + " has changed from uid: "
                                + mOutPermissions[1] + " to "
                                + pkg.applicationInfo.uid + "; old data erased";
                        reportSettingsProblem(Log.WARN, msg);
                        recovered = true;

                        // And now re-install the app.
                        ret = mInstaller.install(pkgName, pkg.applicationInfo.uid,
                                pkg.applicationInfo.uid);
                        if (ret == -1) {
                            // Ack should not happen!
                            msg = prefix + pkg.packageName
                                    + " could not have data directory re-created after delete.";
                            reportSettingsProblem(Log.WARN, msg);
                            mLastScanError = PackageManager.INSTALL_FAILED_INSUFFICIENT_STORAGE;
                            return null;
                        }
                        // Create data directories for all users
                        sUserManager.installPackageForAllUsers(pkgName,
                                pkg.applicationInfo.uid);
                    }
                    if (!recovered) {
                        mHasSystemUidErrors = true;
                    }
                } else if (!recovered) {
                    // If we allow this install to proceed, we will be broken.
                    // Abort, abort!
                    mLastScanError = PackageManager.INSTALL_FAILED_UID_CHANGED;
                    return null;
                }
                if (!recovered) {
                    pkg.applicationInfo.dataDir = "/mismatched_uid/settings_"
                        + pkg.applicationInfo.uid + "/fs_"
                        + mOutPermissions[1];
                    pkg.applicationInfo.nativeLibraryDir = pkg.applicationInfo.dataDir;
                    String msg = "Package " + pkg.packageName
                            + " has mismatched uid: "
                            + mOutPermissions[1] + " on disk, "
                            + pkg.applicationInfo.uid + " in settings";
                    // writer
                    synchronized (mPackages) {
                        mSettings.mReadMessages.append(msg);
                        mSettings.mReadMessages.append('\n');
                        uidError = true;
                        if (!pkgSetting.uidError) {
                            reportSettingsProblem(Log.ERROR, msg);
                        }
                    }
                }
            }
            pkg.applicationInfo.dataDir = dataPath.getPath(); 
于 2016-05-14T21:36:21.010 に答える
0

問題は、このプロジェクト (maven) に指定した apache commons のバージョンが、既に Android 2.x に統合されているものとは異なる (新しい) ことでした。これにより、次のエラーが発生しました。

D/dalvikvm(2530): DexOpt: not verifying 'Lorg/apache/commons/codec/Decoder;': multiple definitions

そのため、apache common への依存関係を削除し、独自の実装に置き換えました。新しいApache共通クラスをアプリケーションパッケージに再パックするか、提供されたスコープで遊んでみることもできると思います...

于 2014-08-03T12:08:11.043 に答える