gpt4 book ai didi

java - NDK 功能不起作用

转载 作者:行者123 更新时间:2023-11-30 05:36:50 26 4
gpt4 key购买 nike

我正在使用具有 native 库函数的此类。
但是函数返回 NULL。可能的原因是什么?

Note: There is another class having NDK functions, is working fine.

package com.fgtit.data;

import android.util.Base64;
import android.util.Log;

public class Conversions {

private static Conversions mCom=null;

public static Conversions getInstance(){
if(mCom==null){
mCom=new Conversions();
}
return mCom;
}

public native int StdToIso(int itype,byte[] input,byte[] output);
public native int IsoToStd(int itype,byte[] input,byte[] output);
public native int GetDataType(byte[] input);
public native int StdChangeCoord(byte[] input,int size,byte[] output,int dk);

public String IsoChangeOrientation(byte[] input,int dk){
int dt=GetDataType(input);
if(dt==3){
byte output[] =new byte[512];
byte stddat[]=new byte[512];
byte crddat[]=new byte[512];
IsoToStd(2,input,stddat);
StdChangeCoord(stddat,256,crddat,dk);
StdToIso(2,crddat,output);
return Base64.encodeToString(output,0,378,Base64.DEFAULT);
}
return "";
}

public String AllToIso(byte[] input,int dk){
Log.d("checking", "response");
switch(GetDataType(input)){
case 1:{
byte mTmpData[]=new byte[512];
byte mIsoData[]=new byte[512];
StdChangeCoord(input, 256, mTmpData, dk);
StdToIso(2,mTmpData,mIsoData);
return Base64.encodeToString(mIsoData,0,378,Base64.DEFAULT);
}
case 2:{
byte mTmpData1[]=new byte[512];
byte mTmpData2[]=new byte[512];
byte mIsoData[]=new byte[512];
IsoToStd(1,input,mTmpData1);
StdChangeCoord(mTmpData1, 256, mTmpData2, dk);
StdToIso(2,mTmpData2,mIsoData);
return Base64.encodeToString(mIsoData,0,378,Base64.DEFAULT);
}
case 3:
return IsoChangeOrientation(input,dk);
}
return "nothing";
}

public String AllToStd(byte[] input,int dk){
switch(GetDataType(input)){
case 1:{
byte mTmpData[]=new byte[512];
StdChangeCoord(input, 256, mTmpData, dk);
return Base64.encodeToString(mTmpData,0,256,Base64.DEFAULT);
}
case 2:{
byte mTmpData1[]=new byte[512];
byte mTmpData2[]=new byte[512];
IsoToStd(1,input,mTmpData1);
StdChangeCoord(mTmpData1, 256, mTmpData2, dk);
return Base64.encodeToString(mTmpData2,0,256,Base64.DEFAULT);
}
case 3:{
byte mTmpData1[]=new byte[512];
byte mTmpData2[]=new byte[512];
IsoToStd(2,input,mTmpData1);
StdChangeCoord(mTmpData1, 256, mTmpData2, dk);
return Base64.encodeToString(mTmpData2,0,256,Base64.DEFAULT);
}
}
return "";
}

static {
System.loadLibrary("conversions");
}
}

最佳答案

我曾经遇到过类似的问题,在我只离开类并且只离开库方法之后运行。像这样:

公共(public)类 LibInterface { 静止的 { System.loadLibrary("库"); } public native int get_method(int param);

关于java - NDK 功能不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33435097/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com