Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Android app crashes with std::bad_cast on mavsdkServer.run("udp://:14550") #169

Open
josephm28 opened this issue Jun 26, 2024 · 9 comments

Comments

@josephm28
Copy link
Contributor

Hi!

I'm using mavsdk:2.0.1 and mavsdk-server:2.0.0 in my Android app. I finally have everything compiling, but when I call mavsdkServer.run("udp://:14550"), I get an app crash with

libc++abi  E  terminating with uncaught exception of type std::bad_cast: std::bad_cast
libc  A  Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 16094 (mavsdk-event-qu), pid 15871

I've also been intermittently dealing with

java_vm_ext.cc:591] JNI DETECTED ERROR IN APPLICATION: field operation on NULL object: 0x0
java_vm_ext.cc:591]     in call to GetObjectField
java_vm_ext.cc:591]     from java.lang.String java.lang.Runtime.nativeLoad(java.lang.String, java.lang.ClassLoader, java.lang.Class)

but right now the first error is where I'm stuck.

I did see #70 which looks like a similar error at the end of the thread, but no resolution there.

Do you have any suggestions?

@JonasVautherin
Copy link
Collaborator

Hmm... could you maybe try the latest version 2.1.0? https://central.sonatype.com/search?q=mavsdk

@josephm28
Copy link
Contributor Author

Updated and I get the same two errors.

@josephm28
Copy link
Contributor Author

I can get the sample android app working correctly, but the mavsdk version is pretty old. I'm trying to update that as well to 2.1.0 to narrow down issues.

@josephm28
Copy link
Contributor Author

Here's a PR to update several pieces of the android-client, including the mavsdk 2.1.0 - #170 seems to build and run okay (at least drone connection).

So now I'm wondering if there's some dependency issue in my app... but not sure what that would be.

@JonasVautherin
Copy link
Collaborator

@Sefibrah: Does 2.1.0 work for you? Just to have another data point

@josephm28
Copy link
Contributor Author

I'm also occasionally seeing this error, again pointing to some weird dependency issue?

java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "_ZNKSt6__ndk14__fs10filesystem4path10__filenameEv" referenced by "/data/app/~~8GsfdN9bL2Pf58nQvs0l8g==/com.dronedeploy.beta-tXNIZA4nw3M4Efvp3NFflw==/lib/arm64/libmavsdk_server.so"...
                                                                                                    	at java.lang.Runtime.loadLibrary0(Runtime.java:1082)
                                                                                                    	at java.lang.Runtime.loadLibrary0(Runtime.java:1003)
                                                                                                    	at java.lang.System.loadLibrary(System.java:1661)
                                                                                                    	at io.mavsdk.mavsdkserver.MavsdkServer.<clinit>(MavsdkServer.java:6)

@JonasVautherin
Copy link
Collaborator

Are you getting mavsdk from Maven or compiling it yourself?

@josephm28
Copy link
Contributor Author

I'm using Maven.

We also use the DJI SDK in the same app and I think I've traced the issue to com.secneo.sdk. To set up that SDK, you configure (e.g. setup)

class MyApplication : Application() {
    override fun attachBaseContext(base: Context?) {
        super.attachBaseContext(base)
        // before installation, please don't use MSDK
        com.secneo.sdk.Helper.install(this)
    }
    ...
}

If you remove com.secneo.sdk.Helper.install(this) there are no issues with the JNI or the MAVSDK and I get a connection to the drone. Of course, that means that the DJI SDK doesn't work... So at least I know a bit more about what's causing it, but still not sure why it's causing the JNI crashes.

@Sefibrah
Copy link
Contributor

@Sefibrah: Does 2.1.0 work for you? Just to have another data point

The update to 2.1.0 provided me a successful run, as well as a successful mission upload. However, when I tried again the same thing 2-3 months later, I encountered this issue #178, so I am not certain what is going on.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants