Android ndk Android ndk应用程序停止工作
我一直试图开始在我的android应用程序中添加本机代码,所以我查阅了大量的android NDK教程,但都没有用。我无法在模拟器或Galaxy S3上运行任何应用程序。我一直收到相同的错误:“不幸的是,[AppName]已停止工作” 我的ndk build命令运行成功,我得到了一个.so文件。我不知道文件应该是什么样子。这是我的 这在我看来像是胡言乱语,但我知道什么 这是我的日志 它表示未找到本机方法 以下代码是我的主要(也是唯一)活动 这是我的C代码(称为native.C) 这是我的舱单Android ndk Android ndk应用程序停止工作,android-ndk,Android Ndk,我一直试图开始在我的android应用程序中添加本机代码,所以我查阅了大量的android NDK教程,但都没有用。我无法在模拟器或Galaxy S3上运行任何应用程序。我一直收到相同的错误:“不幸的是,[AppName]已停止工作” 我的ndk build命令运行成功,我得到了一个.so文件。我不知道文件应该是什么样子。这是我的 这在我看来像是胡言乱语,但我知道什么 这是我的日志 它表示未找到本机方法 以下代码是我的主要(也是唯一)活动 这是我的C代码(称为native.C) 这是我的舱单
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.ndksetup"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="19"
android:targetSdkVersion="19" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".NDKSetupActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
您缺少
Java\uu
前缀。尝试将native.c
中的函数名重命名为Java\u com\u示例\u ndksetup\u NDKSetupActivity\u printLog
希望这能有所帮助。关于正确的函数名,有
javah
:
cd bin/classes
javah com.company.MyClassWithNativeStuff com.company.Util
它生成.h文件。Java包名是什么,问题所在的Java代码在哪里。非常感谢你。
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_LDLIBS := -llog
LOCAL_MODULE := ndksetup
LOCAL_SRC_FILES := native.c
include $(BUILD_SHARED_LIBRARY)
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.ndksetup"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="19"
android:targetSdkVersion="19" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".NDKSetupActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
cd bin/classes
javah com.company.MyClassWithNativeStuff com.company.Util