2012-07-09 4 views
0

Android Eclipse 프로젝트에 라이브러리 ld-uClibc-0.9.30.1.so을로드해야합니다. 나는 나의 호스트 컴퓨터에서 Sytem.load("/root/workspace/libs/ld-uClibc-0.9.30.1.so") 그것을로드하려고하지만 오류 얻을 :System.load() 함수를 사용하여 라이브러리를로드하는 방법은 무엇입니까?

Cannot load library /root/workspace/libs/ld-uClibc-0.9.30.1.so. Library not found. 

문제는 무엇입니까? System.load와 함께 작동하지 않는 이유는 무엇입니까?

+0

안드로이드 호환 라이브러리처럼 들리지 않는다. –

+0

좋아, 내가 안드로이드와 호환되는지 여부를 알 수있는 방법을 말해 줄 수 있습니까? –

+0

생성 된 도구 체인 또는 오류로드 중. 이 경우에도 라이브러리가 제안하면 이름. uClibc는 작은 시스템을위한 C 라이브러리이지만, Android는 자신의 앱이 시작될 때 이미로드 된 Bionic이라는 자체 C 라이브러리를 가지고 있습니다. 당신은 안드로이드 ndk와 함께 이것을 필요로하는 코드를 재 컴파일해야한다. 그래서 그것은 Bionic 대신에 연결된다. –

답변

0

프로젝트 폴더 안에 libs와 폴더에 라이브러리를 추가하고 그냥 진짜 문제가 무엇인지

System.loadLibrary("ld-uClibc-0.9.30.1"); 
+0

나는 그런 식으로 작동하지 않습니다. System.loadLibrary ("ld-uClibc-0.9.30.1"); 어느 쪽도 작동하지 않습니다. 실제로 System.load()를 사용하면 라이브러리에 전체 경로를 지정해야합니다. 그러나 아무것도 아직 효과가 없습니다. –

+0

loadLibrary, 죄송합니다. – Nermeen

+0

System.loadLibrary에서도 작동하지 않습니다. 그게 무슨 문제 야? –

0

을 실현를 호출합니다. 나는 당신이 uClibc C 라이브러리를로드하려한다고 생각했다. 그러나 실제로, 그것은 사실이 아닙니다. bionic보다는 uClibc에 링크 된 libusb 버전의 종속성을 해결하기 위해 uClibc 동적 링커를로드하려고합니다.

이것은 단지 당신은 그것의 독립을 생성 혼자 툴체인 기능을 통해 가능 NDK 툴체인을 사용하여, 생체 공학에 링크 모든 것을 다시 할 필요가

(음란 한 해커없이 적어도) 작업을 진행하지 않습니다.

그러나 루트가없는 안드로이드에서 libusb를 작동 시키거나 장치 파일 권한을 수정할 수있는 능력은 무의미한 방법입니다.

+0

좋아요, 생체 공학과 관련된 모든 것을 어떻게 재구성합니까? 이 질문에 대해 유감스럽게 생각하지만 이미 언급했듯이 나는 절대적인 Android 초보자입니다. 그리고 libusb가 루틴되지 않은 Android 장치에서 작동하게하는 것이 거의 불가능합니까? 주요 문제는 무엇입니까? 나는 인터넷에서 그것에 대해 많이 알지 못했다. 불가능한 것이면 너무 많은 시간을 낭비하고 싶지 않기 때문입니다. –

+0

원시 장치 파일에 액세스 할 수 있는지 의문이 생깁니다. 대부분의 다른 곳에서는 안드로이드에서 할 수 없으며 시스템 수준의 사용자 공간 프록시를 통해 이야기해야합니다. –

0

libusb.so를 NDK로 컴파일 했으므로 적어도 Android 프로젝트 내에로드 할 수 있습니다. 저는이 주제가 답을 찾을 수 있다고 생각합니다. 나는 안드로이드에서 libusb의 사용에 관한 또 다른 질문을 게시 할 것이다. 모두에게 아직도 좋은 힌트를 주시면 감사하겠습니다. 왜냐하면 지금까지 많이 도움이 되었기 때문입니다.