|
发表于 2015-10-20 08:58:53
|
显示全部楼层
本帖最后由 chenyuchih 于 2015-10-20 09:00 编辑
對不起,試了好幾天還是解決不了,所以上來煩大家 ...
這次的FPC版本似乎變革較大,除了編譯後的binary大小小很多外,是不是JNI相關的規則有所變更?
下面最基本的Code可以編譯但是一執行就閃退 (我用Android 2.3 API10的模擬器執行,老電腦跑不了新的Android),7/25的版本就都一切正常(目前是我用起來最穩定的)
FPC側:
library testjni;
{$mode objfpc}{$H+}
uses
JNI;
Function MyAdd(Env: pJNIEnv;this:JObject;a,b:JDouble):JDouble;Cdecl;
begin
Result:=a+b;
end;
Function JNI_OnLoad(VM: PJavaVM;Reserved: Pointer):JInt;Cdecl;
begin
Result:=JNI_VERSION_1_4; //回傳JNI版本
end;
Procedure JNI_OnUnload(VM: PJavaVM;Reserved: Pointer);Cdecl;
begin
end;
Exports
MyAdd name 'Java_Test_TestJNI_MyAdd',
JNI_OnLoad,
JNI_OnUnLoad;
begin
end.
-----------------
Java側:
public class TestJNI {
static
{
System.loadLibrary("testjni");
}
public static native double MyAdd(double a, double b);
}
麻煩有時間前輩們指點一下問題在哪邊,感恩!
|
|