简体   繁体   English

在android本机应用程序的本机文件中为java方法定义返回值

[英]define return value for java method in native file in android native app

In define findclass and getmethodid in Android native app, I have an method that returns a value of Uri.在 Android 本机应用程序中定义 findclass 和 getmethodid 时,我有一个返回 Uri 值的方法。

below is my native code:下面是我的本机代码:

void Java_com_example_myapp_MainActivity_callnative(JNIEnv* env, jobject obj){
    jclass handlerClass = (*env)->FindClass(env, "com/example/myapp/myclass");
     jmethodID parsemethod = (*env)->GetMethodID(env, handlerClass, "methodname", "(Ljava/lang/String;)Landroid/net/Uri"); 

}

MainActivity code:主要活动代码:

public class MainActivity extends ActionBarActivity {
    private static String LIB_NAME = "nativelib";

    static {
        System.loadLibrary(LIB_NAME);
    }
     
    public native void callnative();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        callnative();
    }
}

and myclass code which has a method(show) and Native code will call this method:和具有方法(显示)和本机代码的 myclass 代码将调用此方法:

   public class myclass {
        
         public Uri show(Uri Uri)
         {
             Log.v("called from native", "calling from native side");
            return Uri.parse("content://this/string");
         }  
    }

I get this error: Java.lang.NoSuchMethodError: no method with name ="methodname" signature=' (Ljava/lang/String;) Landroid/net/Uri' in class Lcom/example/myapp/myclass;我收到此错误:Java.lang.NoSuchMethodError: no method with name ="methodname" signature=' (Ljava/lang/String;) Landroid/net/Uri' in class Lcom/example/myapp/myclass;

suppose this is for Define Return value, for return value like Void we set Only V, but I do not have any idea about Uri.假设这是用于定义返回值,对于像 Void 这样的返回值,我们只设置 V,但我对 Uri 一无所知。

How can I fix this?我怎样才能解决这个问题?

您可能正在从java static方法调用本机方法,只需从MainActivity删除关键字static

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Android本机方法对Java不可见 - Android native method is invisible for Java 如何重构从 React Native 调用的原生 Android Java 方法? - How to refactor native Android Java method to be called from React Native? Android本机活动-调用Java方法 - Android Native Activity - Call Java method Tizen Gear 2与Android Native Java App的通信 - Tizen Gear 2 to Android Native Java App Communication 如何在本机android应用中渲染epub文件? - How to render a epub file in a native android app? Window.beforeunload 事件在 Android 本机应用程序的 WebView 中触发,无论 shouldOverrideUrlLoading 返回值如何 - Window.beforeunload event is triggered in WebView in Android native app regardless of shouldOverrideUrlLoading return value 从本机代码创建android java文件 - create android java file from native code 如何找到本机 c++ function 谁在 android 应用程序和哪个库中调用了 java 方法? - how to find the native c++ function who called a java method in a android app and in which library? 如何在Java Android本机中返回新创建的Java类对象? - How to return a newly created java class object in native to java android? android本机代码调用java方法成功,但是ui方法失败了 - android native code call java method success, but ui method failed
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM