PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV Mobile 2024 → Windev Android app couldn't find JAVA native libraries (.so)
Windev Android app couldn't find JAVA native libraries (.so)
Iniciado por Rossano, 18,dic. 2018 11:24 - No hay respuesta
Miembro registrado
1 mensaje
Publicado el 18,diciembre 2018 - 11:24
I'm developing a Windev Mobile app for a new mobile RFID scanner. I copied the JAVA source code, .JAR and .SO file from the manufacturer SDK and included them in my app. I was able to build and generate my app but I'm getting the following errors:

FATAL ERROR
WIN_MAIN.BTN_Start process. Internal error of WD Java Framework.:dalvik.system.PathClassLoader[DexPathList[[zip file */data/app/com.mirnah.orcascan-1/base.apk"],nativeLibraryDirectories=[/data/app/com.mirnah.orcascan-1/lib/arm,/vendor/lib,/system/lib]]] couldn't find 'libserial_port.so"

I already included the .so and .jar file in the "Integrating Files" and "Including Libraries" part of the APK generation wizard and still getting the FATAL Error message.

I'm not familiar with general structure of how Android files are saved on a mobile device. Perhaps I need to save them on another directory but don't know where.

Does any body know what's the proper way in attaching or including my external native libraries so the Windev can easily find and read them.

Here I've attached part of my code for scanning RFID tags.

import com.nativec.tools.ModuleManager;
import com.nativec.tools.SerialPortFinder;
import com.module.interaction.ModuleConnector;
import com.rfid.RFIDReaderHelper;
import com.rfid.ReaderConnector;
import com.rfid.rxobserver.RXObserver;
import com.rfid.rxobserver.bean.RXInventoryTag;
import com.xdl2d.scanner.TDScannerConnector;
import com.xdl2d.scanner.TDScannerHelper;
import com.xdl2d.scanner.callback.RXCallback;

public static void Scan()
{
RXObserver rxObserver;
ModuleConnector connector = new ReaderConnector();
ModuleConnector mConnector = new TDScannerConnector();
RFIDReaderHelper mReader;

connector.connectCom("dev/ttyS4", 115200);

rxObserver = new RXObserver() {
@Override
protected void onInventoryTag(RXInventoryTag tag) {
String msg = callWLProcedure_String("ReadTag", tag.strEPC);
}
@Override
protected void onInventoryTagEnd(RXInventoryTag.RXInventoryTagEnd tagEnd) {
try {
Thread.currentThread().sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};

ModuleManager.newInstance().setScanStatus(false);
ModuleManager.newInstance().setUHFStatus(true);
try {
mReader = RFIDReaderHelper.getDefaultHelper();
mReader.registerObserver(rxObserver);
} catch (Exception e) {
e.printStackTrace();
}

}