Ich habe zwei ausführbare Dateien, beide kompiliert, um in Android zu laufen. Ich habe beide auf dem Gerät im selben Verzeichnis abgelegt. Ich habe alle Shared Libraries, auf die sie angewiesen sind, in dasselbe Verzeichnis gestellt, einschließlich ld-linux.so.3. Ich betreiben die ausführbaren Dateien unter Verwendung von:Mögliche Ursachen für "Zuordnung des Segments vom gemeinsamen Objekt fehlgeschlagen: Operation nicht zulässig" und Debuggen?
ld-linux.so.3 --library-path/path/to/Bibliotheken
executable_namearbeiten beide auf älteren Android-Versionen, wenn sie als jeden Benutzer ausgeführt wird. Beide funktionieren auf der neuesten Android-Version, wenn sie als root ausgeführt werden. Nur einer funktioniert auf der neuesten Android-Version, wenn er als beliebiger Benutzer ausgeführt wird. Stattdessen gibt es:
ausgefallenes Segment aus dem gemeinsamen Objekt abbilden: executable_name Betrieb nicht
erlaubtWie kann ich herausfinden, was mit der ausführbaren Datei unterscheidet, die nicht ausgeführt werden?
ich las viel online und die meisten Leute, die diesen Fehler erhalten, entweder:
A) hat keine Berechtigungen zum Ausführen für eine der Bibliotheken sie auf oder der ausführbaren Datei selbst abhängig sind.
oder
B) versuchen, aus einem Verzeichnis auszuführen, das als NOEXEC montiert ist.
beide scheinen nicht der Fall zu sein. Es kann alle Bibliotheken finden und ich kann jede Bibliothek selbst laden und sehen, welche anderen Dinge davon abhängig sind, gelöst zu werden. Außerdem kann ich grundlegende Skripte aus den Verzeichnissen von Interesse ausführen.
Die neuere Version von Android, Jelly Bean, ist eine andere Linux-Kernel-Version und ich frage mich, ob das verwandt ist.
Was geben? Wie kann ich debuggen?
eine andere Art und Weise der Frage (mit Prämie) hier: http://stackoverflow.com/questions/13467951/issue-including-executable-with-android-application- when-using-jelly-bean – corbin