PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2024 → Windev Android app couldn't find JAVA native libraries (.so)
Windev Android app couldn't find JAVA native libraries (.so)
Débuté par Rossano, 18 déc. 2018 11:24 - Aucune réponse
Membre enregistré
1 message
Posté le 18 décembre 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();
}

}