2010-04-08 8 views
0

내가 안드로이드 NDK에 대해 자신을 가르치기 시작하고 내가 여기에이 예를 따랐다 JNI - 나는 완벽하게 단계를 따라했습니다 http://marakana.com/forums/android/android_examples/49.html안드로이드 NDK는 문제

을하지만 난 다음 오류 얻을 응용 프로그램을 실행하면

Trying to load lib /data/data/com.cnetworks.ndk/lib/libndk_demo.so 0x435c2d20 
Added shared lib /data/data/com.cnetworks.ndk/lib/libndk_demo.so 0x435c2d20 
No JNI_OnLoad found in /data/data/com.cnetworks.ndk/lib/libndk_demo.so 0x435c2d20 
+++ not scanning '/system/lib/libwebcore.so' for 'hello' (wrong CL) 
+++ not scanning '/system/lib/libmedia_jni.so' for 'hello' (wrong CL) 
WARN/dalvikvm(5191): No implementation found for native Lcom/cnetworks/ndk/NativeLib;.hello()Ljava/lang/String; 

Java 코드가 있습니다. nativeLib.hello()가 문제의 원인입니다.

public class NDKdemo2 extends Activity { 
NativeLib nativeLib; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.main); 

nativeLib = new NativeLib(); 
String helloText = nativeLib.hello(); 

// Update the UI 
TextView outText = (TextView) findViewById(R.id.textOut); 
outText.setText(helloText); 


} 
} 

누가 이전에 동일한 문제가 있었는지 나에게 무엇이 잘못 됐는지 알 수 있습니까?

+2

네이티브 함수의 선언 줄을 포함 할 수도 있습니까? VM은 네이티브 메소드를 찾지 못합니다. 이름에 오타가 있거나 'extern'C ''로 선언하지 않으면 종종 발생합니다. 함수가 libndk_demo.so 라이브러리에 있습니까? – fadden

+0

고마워요, 퇴색했습니다. 고정되어 있어요 –

+0

안녕하세요 도날니, 위의 오류를 어떻게 해결했는지 말씀해 주시겠습니까? –

답변

1

내 경험에 의하면 #define #define 속성 (x)이 일부 파일에 정의 된 문제가 있습니다. 동일하게 주석 처리를 해제하면 ndk 컴파일 된 라이브러리가로드됩니다.

+0

#define __attribute __ (x) – mayank