Fehler beim Hinzufügen von vorgefertigten apk mit geteilten Bibliotheken zu AOSP

8

Ich habe versucht, meinem Android-Build ein vorgefertigtes APK hinzuzufügen. Das APK enthält mehrere gemeinsam genutzte Bibliotheken (* .so-Dateien). Es kompiliert ohne Probleme, aber ich bekomme immer noch einen Fehler von der App, der anzeigt, dass die Bibliotheken nicht gefunden werden können.

Warum könnte das sein?

Hier ist der Code android.mk :

%Vor%

libx, y, z sind meine libx.so, liby.so und libz.so

Ich habe auch versucht, das .so manuell vom APK in die out lib Verzeichnisse zu kopieren, aber es hat nicht funktioniert.

Ich kompiliere mit Android 4.1.2 für Galaxy Nexus Maguro.

    
Cattivo 04.02.2013, 12:58
quelle

5 Antworten

6

BUILD_PREBUILT ruft prebuild.mk script auf. Die Beschreibung dieses Skripts lautet wie folgt:

  

Standardregeln zum Kopieren von Dateien, die vorkompiliert sind

Es sagt nicht, dass die Anwendung installiert wird. Ich denke, deshalb kann Ihre Anwendung die Bibliotheken nicht finden.

Die Lösung besteht darin, Bibliotheken aus dem Paket zu extrahieren und sie getrennt von der Anwendung zu kopieren. Die Details dazu finden Sie hier .

    
Yury 04.02.2013, 16:56
quelle
15

Ich hatte dieses Problem selbst. Der Grund dafür ist, dass wenn APK-Dateien in einem Build enthalten sind, sie den Installationsprozess im Wesentlichen umgehen. Dieser Installationsprozess ist der Punkt, an dem alle gemeinsam genutzten Bibliotheken aus der Apk extrahiert und an der entsprechenden Stelle abgelegt werden. Ergo, wenn dies niemals geschieht, werden die Bibliotheken nicht verfügbar sein. Dies liegt daran, dass Pakete, die während des AOSP-Builds aus der Quelle erstellt werden, entweder bereits vordefinierte gemeinsame Bibliotheken enthalten oder ihre Bibliotheken ebenfalls aus der Quelle erstellt werden. In jedem Fall werden diese Bibliotheken an der entsprechenden Stelle eingefügt.

Aus diesem Grund sollten Sie zusätzlich zum apk-Modul selbst folgendes in derselben .mk-Datei hinzufügen:

%Vor%

Fügen Sie dann Folgendes hinzu:

%Vor%     
Justin Buser 01.04.2013 01:52
quelle
1

Dateien können auch in aospSource:destinationOnImage format wie folgt in device-partial.mk angegeben werden, wenn ein benutzerdefiniertes Herstellerverzeichnis hinzugefügt wird:

%Vor%

Sie können hier so ziemlich alles hinzufügen, was Ihnen gefällt (außer .apk-Dateien), und es wird in Ihr Bild kopiert.

    
Justin Buser 15.03.2013 17:07
quelle
0

Um mehrere Bibliotheken zu einer einzigen APK hinzuzufügen, sollte für jede separate Bibliothek ein zusätzlicher Abschnitt (wie in der Antwort von Justin Buser) hinzugefügt werden.

    
Michael 08.10.2013 12:51
quelle
0

In meinen Anweisungen geht es nicht um deinen Fehler! Aber es kann für ähnliche Fehler hilfreich sein

Wenn Sie versuchen, vorgefertigte apk zu kopieren, verwenden Sie:

%Vor%

und Sie erhalten diesen Fehler:

%Vor%

Sie können diese Überprüfung entfernen, die Datei build/core/MakeFile ändern und diese Zeilen kommentieren:

%Vor%

durch Einfügen von # vor jeder Zeile

    
Benny 25.04.2017 14:16
quelle