2010-06-16 6 views
7

Ich arbeite für einen Betreiber, und wir laden Anwendungen auf Android-Handys.Vorinstallierte Android-Anwendung mit .so Bibliotheksdatei kann nicht aktualisiert werden

Einige vorinstallierte Anwendungen, die von Market aktualisiert wurden, stürzen jedoch ab.

Das Problem ist folgendes:
- die Anwendung enthält eine .so Bibliotheksdatei
-, um die vollständige Anwendung auf einem Telefon vorzuladen, die .so Bibliotheksdatei separat in das lib-Verzeichnis platziert werden (/ system/lib/libXXXXjni.so)
- Wenn die vorinstallierte Anwendung von Market aktualisiert und ausgeführt wird, wird anstelle der .so-Bibliotheksdatei im neuen APK zuerst die ältere vorinstallierte .so-Datei gefunden, was zu einem Absturz führt. weil die beiden .so fiels unterschiedliche Inhalte haben

Hat jemand eine vorgeschlagene Umgehung oder Kenntnisse der Bibliothek-Suche Algorthim, die mir helfen können löse das?

Eine mögliche Lösung könnte sein, einfach die Bibliotheksdatei umzubenennen, aber ist das genug?

Vielen Dank im Voraus ...

Antwort

0

Wenn Sie vorzuladen, versuchen Sie die Anwendungsbibliothek bei der Umsetzung: /data/data/com.package.foobar/lib/libXXXXjni.so

die Bibliothek umbenennen würde Arbeit. Möglicherweise wird die Versionsnummer der App als Name der .so-Datei verwendet. Der Build wird jedoch komplizierter.

+0

Für jede Art von Vorlast-Situation, hätte das Gerät keinen Root-Zugriff, um eine Datei in diesem/data/data location umzubenennen? – Maximus

+0

Ich dachte, dass die Bibliothek einen neuen Namen in der aktualisierten Version bekommt. Die Umbenennung würde auf dem Computer des Entwicklers (und im Aufruf von System.loadLibrary (...) im Code erfolgen.) Ich denke, die Bibliothek wird im lib-Verzeichnis der Anwendung geladen und nicht in/system/lib. – abh

Verwandte Themen