簡體   English   中英

Android上的JNI,如何將int從c傳遞給java

[英]JNI on Android, how to pass int from c to java

我有一個C函數,我只返回一個整數,如下所示:

 JNIEXPORT jint JNICALL Java_org_project_ScreenPosition(JNIEnv* env, jobject thiz){
   int i=1;
   return i;
 } 

我以Android上的Activity onCreateContextMenu的方式調用此函數,如下所示:

public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo){
 menu.setHeaderTitle("TryMenu");

 int a=ScreenPosition();
 return;
}

但是所有崩潰

假設您將C代碼編譯到名為libmyCode。的庫中,則需要使用此Java調用將共享庫代碼顯式加載到進程中:

System.loadLibrary(“ myCode”);

在調用任何JNI方法之前。

如果更改了API(Java中使用“ native”關鍵字的方法聲明),則絕對需要再次運行javah實用程序。

如果使用Eclipse,則在運行javah和ndk-build之后,最好按F5鍵刷新Eclipse對文件系統的視圖。 然后,Eclipse將檢測到新建的庫代碼。

如果仍然無法正常工作,請共享logcat的輸出,包括從將應用程序安裝到手機那一刻起出現的所有輸出,堆棧轉儲以及任何錯誤或警告消息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM