C++ java。lang.NoSuchMethodError:没有静态方法,仅适用于发布版本,不适用于调试
<> Kotlin函数在从C++加载时得到了一个^ {< CD1}},但它只在运行<强>颤动释放< /强>时发生。在调试中,它可以正常工作,没有任何错误03-05 15:40:16.174 8799 8799 F zygote64: thread.cc:2036] No pending exception expected: java.lang.NoSuchMethodError: no static method "Lcom/myapp/flutter_app/JNI;.loadWavAsset(Ljava/lang/String;Ljava/lang/String;F)Z"
03-05 15:40:16.174 8799 8799 F zygote64: thread.cc:2036] at java.lang.String java.lang.Runtime.nativeLoad(java.lang.String, java.lang.ClassLoader, java.lang.String) (Runtime.java:-2)
03-05 15:40:16.174 8799 8799 F zygote64: thread.cc:2036] at java.lang.String java.lang.Runtime.doLoad(java.lang.String, java.lang.ClassLoader) (Runtime.java:1099)
03-05 15:40:16.174 8799 8799 F zygote64: thread.cc:2036] at void java.lang.Runtime.loadLibrary0(java.lang.ClassLoader, java.lang.String) (Runtime.java:1014)
03-05 15:40:16.174 8799 8799 F zygote64: thread.cc:2036] at void java.lang.System.loadLibrary(java.lang.String) (System.java:1657)
03-05 15:40:16.174 8799 8799 F zygote64: thread.cc:2036] at void com.myapp.flutter_app.MainActivity.<init>() (:-1)
03-05 15:40:16.174 8799 8799 F zygote64: thread.cc:2036] at java.lang.Object java.lang.Class.newInstance() (Class.java:-2)
03-05 15:40:16.174 8799 8799 F zygote64: thread.cc:2036] at 安卓.app.Activity 安卓.app.Instrumentation.newActivity(java.lang.ClassLoader, java.lang.String, 安卓.content.Intent) (Instrumentation.java:1195)
以下是kotlin文件:
package com.myapp.flutter_app
import 安卓.content.Context
//... other imports
class JNI(val _context: Context) {
companion object {
val TAG: String = "JNI.kt";
lateinit var context: Context;
@JvmStatic
public fun loadWavAsset(player: String, assetPath: String, pan: Float): Boolean {
<>这里是C++如何加载:
static void getStaticMethodAndCache(JNIEnv *env, jmethodID *cacheHere, jclass *javaClass, std::string methodName, std::string methodSignature)
{
*cacheHere = env->GetStaticMethodID(*javaClass, methodName.c_str(), methodSignature.c_str());
assert(*cacheHere != NULL);
}
getStaticMethodAndCache(env, &loadWavAssetMethod, &JNIClass,
"loadWavAsset",
"(Ljava/lang/String;Ljava/lang/String;F)Z"
共 (0) 个答案