Tôi có hai tệp thực thi, cả hai được biên dịch chéo để chạy trong Android. Tôi đã đặt cả hai trên thiết bị trong cùng một thư mục. Tôi đã đặt tất cả các thư viện chia sẻ mà họ đang phụ thuộc vào trong cùng một thư mục, bao gồm ld-linux.so.3. Tôi chạy file thực thi bằng cách sử dụng:Nguyên nhân có thể có của "không thể phân đoạn bản đồ từ đối tượng được chia sẻ: hoạt động không được phép" và cách gỡ lỗi?
ld-linux.so.3 --library-path/path/to/thư viện executable_name
cả công việc trên các phiên bản cũ của Android khi chạy như bất kỳ người dùng. Cả hai hoạt động trên phiên bản Android mới nhất nếu chạy dưới dạng root. Chỉ có một tác phẩm trên phiên bản Android mới nhất khi chạy với bất kỳ người dùng nào. Thay vào đó nó mang lại:
thất bại trong việc lập bản đồ phân đoạn từ đối tượng chia sẻ: hoạt động executable_name không được phép
Làm thế nào tôi có thể tìm ra những gì là khác nhau với thực thi đó sẽ không chạy?
Tôi đọc rất nhiều trên mạng và hầu hết mọi người mà nhận được lỗi này, một trong hai:
A) không có thực quyền cho một trong những thư viện họ phụ thuộc vào hoặc thực thi chính nó.
hoặc
B) đang cố gắng chạy từ thư mục được gắn kết là NOEXEC.
cả hai trường hợp này đều không có vẻ như vậy. Nó có thể tìm thấy tất cả các thư viện và tôi có thể tự tải bất kỳ thư viện nào và xem những thứ khác mà nó phụ thuộc vào việc được giải quyết. Ngoài ra, tôi có thể chạy các tập lệnh cơ bản từ các thư mục quan tâm.
Phiên bản mới hơn của Android, Jelly Bean, là phiên bản hạt nhân Linux khác và tôi tự hỏi nếu điều đó có liên quan.
Điều gì cung cấp? Làm cách nào để gỡ lỗi?
Khi được hỏi một cách khác nhau (với tiền thưởng) ở đây: http://stackoverflow.com/questions/13467951/issue-including-executable-with-android-application- khi-sử dụng-jelly-đậu – corbin