简体   繁体   中英

Android Tensorflow Lite 2.9.0 AAR InterpreterAPI not found Error

As per our requirement, I want to add TF Lite AAR file into our project.

So I have downloaded AAR file(2.9.0) from Maven and added to my project.Then I can imports the Interpreter and other required things, but when I try to build and run the project I'm getting InterpreterAPI class not found error like this.( please refer the screenshots][2] [3] ) 4 [5]

class file for org.tensorflow.lite.InterpreterApi not found

If I add below 2.7.0 version aar files, I'm able to build and run the projects but those are deprecated, I want use latest AAR file only.

Can anyone please help me on this?

Note: I should use AAR only not gradle dependencies

here the code

  @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    setUp();
    try {
        interpreter = new Interpreter(loadModelFile());
    } catch (Exception ex) {
        System.out.println("errrrr........." + ex);
    }
    csvDataList = new ArrayList<>();
    readCSV("stats1.csv");
    Button predict_button = findViewById(R.id.predict_button);
    predict_button.setOnClickListener(view -> {
        try {
            doInference();
        } catch (Exception ex) {
            System.out.println("errrrr......predcition..." + ex);
        }
    });
}

private void doInference() {
    if (interpreter != null) {
        float[][] output = new float[2128][1];
        interpreter.run(inputList, output);
    System.out.println("output size...." + output.length);
        print2D(output);

    } else {
        Toast.makeText(getApplicationContext(), "Interpreter is null", Toast.LENGTH_LONG).show();
    }
}

private MappedByteBuffer loadModelFile() throws IOException {

    AssetFileDescriptor fileDescriptor = this.getAssets().openFd("imei.tflite"); // u can place ur model here

    FileInputStream inputStream = new FileInputStream(fileDescriptor.getFileDescriptor());
    FileChannel fileChannel = inputStream.getChannel();
    long startOffset = fileDescriptor.getStartOffset();
    long declareLength = fileDescriptor.getDeclaredLength();
    return fileChannel.map(FileChannel.MapMode.READ_ONLY, startOffset, declareLength);
}

I have added one more aar file ie tensorflow-lite-api.aar along with tensorflow-lite.aar

After adding this aar to the libs floder, I'm able to build and run my project.

here the maven link

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM