Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Mobile and Embedded
  4. java.lang.ClassNotFoundException with Android 6
Forum Updated to NodeBB v4.3 + New Features

java.lang.ClassNotFoundException with Android 6

Scheduled Pinned Locked Moved Solved Mobile and Embedded
3 Posts 2 Posters 522 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • K Offline
    K Offline
    KroMignon
    wrote on 29 Jun 2020, 15:17 last edited by
    #1

    Hi all,

    I have a strange problem with Qt 5.12.7 for Android ARM.
    I am developing an App which includes an Activity and 2 background services.
    I also have plugin system to extend one of this background services, and some of them use JNI / Java code.

    All works as expected with Android 7.0 devices (and upper) but with Android 6.0, I've got following errors:

    System.err: java.lang.ClassNotFoundException: Didn't find class "com.geocept.mobilecore.AndroidGPS" on path: DexPathList[[],nativeLibraryDirectories=[/vendor/lib, /system/lib]]: com.geocept.navdispatchmobile:mcore
    System.err: 	at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56): com.geocept.navdispatchmobile:mcore
    System.err: 	at java.lang.ClassLoader.loadClass(ClassLoader.java:511): com.geocept.navdispatchmobile:mcore
    System.err: 	at java.lang.ClassLoader.loadClass(ClassLoader.java:469): com.geocept.navdispatchmobile:mcore
    System.err: 	at org.qtproject.qt5.android.QtNative.startQtApplication(Native Method): com.geocept.navdispatchmobile:mcore
    System.err: 	at org.qtproject.qt5.android.QtNative$7.run(QtNative.java:374): com.geocept.navdispatchmobile:mcore
    System.err: 	at org.qtproject.qt5.android.QtThread$1.run(QtThread.java:61): com.geocept.navdispatchmobile:mcore
    System.err: 	at java.lang.Thread.run(Thread.java:818): com.geocept.navdispatchmobile:mcore
    

    To load the Java class I use something like this:

    m_jni =  QAndroidJniObject(
                  "com/geocept/mobilecore/AndroidGPS",
                  "(Landroid/content/Context;)V",
                  QtAndroid::androidContext().object<jobject>()
                  );
    
    if(m_jni.isValid())
    {
        if(JniMethods != Q_NULLPTR && methodCount > 0)
        {
            QAndroidJniEnvironment JniEnv;
            jclass ObjectClass;
            ObjectClass = JniEnv->GetObjectClass(m_jni.object<jobject>());
            JniEnv->RegisterNatives(ObjectClass, JniMethods, methodCount);
            JniEnv->DeleteLocalRef(ObjectClass);
        }
    }
    

    Any ideas why Android 6 don't find java class in APK but Android 7 does?

    It is an old maxim of mine that when you have excluded the impossible, whatever remains, however improbable, must be the truth. (Sherlock Holmes)

    K 1 Reply Last reply 30 Jun 2020, 07:43
    0
    • K KroMignon
      29 Jun 2020, 15:17

      Hi all,

      I have a strange problem with Qt 5.12.7 for Android ARM.
      I am developing an App which includes an Activity and 2 background services.
      I also have plugin system to extend one of this background services, and some of them use JNI / Java code.

      All works as expected with Android 7.0 devices (and upper) but with Android 6.0, I've got following errors:

      System.err: java.lang.ClassNotFoundException: Didn't find class "com.geocept.mobilecore.AndroidGPS" on path: DexPathList[[],nativeLibraryDirectories=[/vendor/lib, /system/lib]]: com.geocept.navdispatchmobile:mcore
      System.err: 	at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56): com.geocept.navdispatchmobile:mcore
      System.err: 	at java.lang.ClassLoader.loadClass(ClassLoader.java:511): com.geocept.navdispatchmobile:mcore
      System.err: 	at java.lang.ClassLoader.loadClass(ClassLoader.java:469): com.geocept.navdispatchmobile:mcore
      System.err: 	at org.qtproject.qt5.android.QtNative.startQtApplication(Native Method): com.geocept.navdispatchmobile:mcore
      System.err: 	at org.qtproject.qt5.android.QtNative$7.run(QtNative.java:374): com.geocept.navdispatchmobile:mcore
      System.err: 	at org.qtproject.qt5.android.QtThread$1.run(QtThread.java:61): com.geocept.navdispatchmobile:mcore
      System.err: 	at java.lang.Thread.run(Thread.java:818): com.geocept.navdispatchmobile:mcore
      

      To load the Java class I use something like this:

      m_jni =  QAndroidJniObject(
                    "com/geocept/mobilecore/AndroidGPS",
                    "(Landroid/content/Context;)V",
                    QtAndroid::androidContext().object<jobject>()
                    );
      
      if(m_jni.isValid())
      {
          if(JniMethods != Q_NULLPTR && methodCount > 0)
          {
              QAndroidJniEnvironment JniEnv;
              jclass ObjectClass;
              ObjectClass = JniEnv->GetObjectClass(m_jni.object<jobject>());
              JniEnv->RegisterNatives(ObjectClass, JniMethods, methodCount);
              JniEnv->DeleteLocalRef(ObjectClass);
          }
      }
      

      Any ideas why Android 6 don't find java class in APK but Android 7 does?

      K Offline
      K Offline
      KroMignon
      wrote on 30 Jun 2020, 07:43 last edited by
      #2

      I reply to myself, I found the problem.
      I am using OnNmeaMessageListener in my Java class, which is only available with Android 7 and upper (API 24).

      I think I have to rework my java code to support older Android API level :(

      It is an old maxim of mine that when you have excluded the impossible, whatever remains, however improbable, must be the truth. (Sherlock Holmes)

      1 Reply Last reply
      0
      • M Offline
        M Offline
        marktoddy
        Banned
        wrote on 22 Jun 2021, 05:26 last edited by
        #3
        This post is deleted!
        1 Reply Last reply
        0

        • Login

        • Login or register to search.
        • First post
          Last post
        0
        • Categories
        • Recent
        • Tags
        • Popular
        • Users
        • Groups
        • Search
        • Get Qt Extensions
        • Unsolved