Skip to content

Erorr : jnr.ffi.provider.jffi.Provider #310

Description

@2246sam20

Hello! I am trying to run native Functions on Android mobile using android studio
I am using Android studio and took reference from the JNR docs and

implementation("com.github.jnr:jnr-ffi:2.2.12") adding jnr as dependency in build.gradle file

public class HelloWorld {
    public interface LibC {
        int setenv(@In String name, @In String value, @In boolean overwrite);

        int unsetenv(@In String name);

        String getenv(@In String name);
        int clearenv();
        int puts(String s);
    }
    public static void main(String[] args) {
        Map<LibraryOption, Object> libraryOptions = new HashMap<>();
        libraryOptions.put(LibraryOption.LoadNow, true);
        libraryOptions.put(LibraryOption.IgnoreError, true);
        String libName = Platform.getNativePlatform().getStandardCLibraryName();

        LibC libc = LibraryLoader.loadLibrary(
                LibC.class,
                libraryOptions,
                libName
        );
        final String pwdKey = "PWD"; // key for working directory
        final String shellKey = "SHELL"; // key for system shell (bash, zsh etc)

        libc.puts("Hello World!");
        // even the special "_" environment variable is now null
    }
    
This is my  MainActivity.kt file
    override fun onCreate(savedInstanceState: Bundle?) {
       super.onCreate(savedInstanceState)
       setContentView(R.layout.activity_main)
  
       var args: Array<String> = arrayOf("shutdown");
       HelloWorld.main(args)

}

And I m checking this android app on a mobile phone for now
After I Run the app it quickly crashes

Below is the error m getting:

AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.hdmitest_v2, PID: 5869
    java.lang.UnsatisfiedLinkError: could not load FFI provider jnr.ffi.provider.jffi.Provider
        at jnr.ffi.provider.InvalidProvider$1.loadLibrary(InvalidProvider.java:49)
        at jnr.ffi.LibraryLoader.load(LibraryLoader.java:420)
        at jnr.ffi.LibraryLoader.loadLibrary(LibraryLoader.java:174)
        at jnr.ffi.LibraryLoader.loadLibrary(LibraryLoader.java:192)
        at com.example.hdmitest_v2.HelloWorld.main(HelloWorld.java:44)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions