我成功地将“libmynative.so”文件夹复制到armeabi文件夹
[armeabi] Compile++ thumb: mynative <= helloworld.cpp
[armeabi] Compile++ thumb: mynative <= jni_entry.cpp
[armeabi] SharedLibrary : libmynative.so
[armeabi] Install : libmynative.so =>libs/armeabi/libmynative.so
我仍然得到以下错误
02-20 01:01:22.949 10851-10851/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.lol.jnihelloworld, PID: 10851
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.lol.jnihelloworld-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]] couldn't find "libmynative.so"
at java.lang.Runtime.loadLibrary(Runtime.java:366)
at java.lang.System.loadLibrary(System.java:988)
at com.lol.jnihelloworld.MainActivity.<clinit>(MainActivity.java:19)
at java.lang.reflect.Constructor.newInstance(Native Method)
at java.lang.Class.newInstance(Class.java:1606)
at android.app.Instrumentation.newActivity(Instrumentation.java:1089)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2240)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2413)
at android.app.ActivityThread.access$800(ActivityThread.java:155)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1317)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5343)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:905)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:700)
这是我的主要活动
package com.lol.jnihelloworld;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import org.w3c.dom.Text;
public class MainActivity extends Activity {
public native String getNativeMessage();
static {
System.loadLibrary("mynative");
}
Button btnInvokeJNI;
TextView tvNativeMsg;
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnInvokeJNI = (Button) findViewById(R.id.btnInvokeJni);
tvNativeMsg = (TextView) findViewById(R.id.txtJniText);
btnInvokeJNI.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
tvNativeMsg.setText(getNativeMessage());
}
});
}
如果您使用的是Android studio,默认的jni库目录不是libs
,您必须在gradle构建脚本中显式指定它。
sourceSets.main {
jniLibs.srcDir 'src/main/libs'
jni.srcDirs = []
}
此外,在构建完成后,您可以检查是否将本机库构建到您的APK中。
$ unzip -l app-debug.apk |grep mynative
我成功地将“libmynative.so”文件夹复制到armeabi文件夹 但我仍然得到以下错误 这是我的主要活动 }
我有一个多模块maven项目,我想为每个模块创建和发布一个映像,除了一个通用的实用程序模块,它是所有其他模块的依赖项。 项目结构如下: 为了构建一个fox示例中的module\u,我需要将common\u module文件夹也复制到容器中,并首先在common文件夹上运行mvn install。如果已经构建好,我可以在模块a
问题内容: 我正在Swift中构建一个简单的程序,它应该将具有特定扩展名的文件复制到另一个文件夹中。如果该文件夹存在,程序将只将它们复制到该文件夹中;如果该文件夹不存在,则程序必须先将其复制。 运行此代码将正确识别MTS文件,但会导致“添加失败…”,我在做什么错? 问题答案: 从文档中: 放置的副本的路径。此路径必须在新位置包含文件或目录的名称。… 您必须将文件名附加到调用的目标目录中 (为S
我有一个Windows文件夹结构和文件,如下所示 c:\源文件\file1.txt c:\源文件夹\subfolder1\file2.txt c:\源文件夹\子文件夹2\file3.txt 我想复制所有文件到目标文件夹,如下所示 c:\DestinationFile\file1.txt c:\DestinationFile\file2.txt c:\DestinationFile\file3.tx
问题内容: 我从阅读了以下文档,但它说,但是当我将index.html文件放在 字符串下时,才呈现出来。目前在下,我 正在使用。 MvcConfiguration Restful Service for index page 在我的IDE控制台上,我确实看到了 从打印的内容 ,并且在Chrome开发工具中的网络下面看到了该内容,但我只能 看到。 index.html 问题答案: Spring Bo
大约1个月前,我仍然可以运行TeamCity服务器,但到目前为止,它说Java1.8版的可执行文件找不到。 我设置了环境变量: JAVA\U HOME=C:\Program Files\JAVA\jdk-11.0.1 JRE\u HOME=C:\Program Files\Java\jre1.8.0\u 192 CATALINA_HOME=C:\apache-tomcat-9.0.12 在Path