【发布时间】:2011-10-17 05:07:21
【问题描述】:
我编写了一个在启动时崩溃的 NativeActivity,因为(我的理论......)我在命名共享库或模块或 AndroidManifest.xml 中的某些内容时做错了。下面是我的应用程序启动时 LogCat 的输出,以及我的清单文件的内容。
有什么我在设置时出错的想法吗?
谢谢, 阿尔法
===================清单=========================== ===================
<?xml version="1.0" encoding="utf-8"?>
<!-- BEGIN_INCLUDE(manifest) -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.Mythica.SpiderGame"
android:versionCode="1"
android:versionName="1.0">
<!-- This is the platform API where NativeActivity was introduced. -->
<uses-sdk android:minSdkVersion="12" />
<!-- This .apk has no Java code itself, so set hasCode to false. -->
<application android:label="@string/app_name" android:hasCode="false">
<!-- Our activity is the built-in NativeActivity framework class.
This will take care of integrating with our NDK code. -->
<activity android:name="android.app.NativeActivity"
android:label="@string/app_name"
android:configChanges="orientation|keyboardHidden">
<!-- Tell NativeActivity the name of or .so -->
<meta-data android:name="android.app.lib_name"
android:value="SpiderGame" />
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
<!-- END_INCLUDE(manifest) -->
====================LOGCAT 输出========================== ====================
07-31 23:13:11.770: WARN/dalvikvm(1384): threadid=1: 线程以未捕获的异常退出 (group=0x4016d760) 07-31 23:13:11.780: 错误/AndroidRuntime(1384): 致命异常: main 07-31 23:13:11.780: 错误/AndroidRuntime(1384): java.lang.RuntimeException: 无法启动活动 ComponentInfo{com.Mythica.SpiderGame/android.app.NativeActivity}: java.lang.IllegalArgumentException: 无法加载原生库:/data/data/com.Mythica.SpiderGame/lib/libSpiderGame.so 07-31 23:13:11.780: 错误/AndroidRuntime(1384): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1751) 07-31 23:13:11.780: 错误/AndroidRuntime(1384): 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1767) 07-31 23:13:11.780: 错误/AndroidRuntime(1384): 在 android.app.ActivityThread.access$1500(ActivityThread.java:122) 07-31 23:13:11.780: 错误/AndroidRuntime(1384): 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1005) 07-31 23:13:11.780: 错误/AndroidRuntime(1384): 在 android.os.Handler.dispatchMessage(Handler.java:99) 07-31 23:13:11.780: 错误/AndroidRuntime(1384): 在 android.os.Looper.loop(Looper.java:132) 07-31 23:13:11.780: 错误/AndroidRuntime(1384): 在 android.app.ActivityThread.main(ActivityThread.java:4028) 07-31 23:13:11.780: 错误/AndroidRuntime(1384): 在 java.lang.reflect.Method.invokeNative(Native Method) 07-31 23:13:11.780: 错误/AndroidRuntime(1384): 在 java.lang.reflect.Method.invoke(Method.java:491) 07-31 23:13:11.780: 错误/AndroidRuntime(1384): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:844) 07-31 23:13:11.780: 错误/AndroidRuntime(1384): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602) 07-31 23:13:11.780:错误/AndroidRuntime(1384):在 dalvik.system.NativeStart.main(本机方法) 07-31 23:13:11.780:错误/AndroidRuntime(1384):原因:java.lang.IllegalArgumentException:无法加载本机库:/data/data/com.Mythica.SpiderGame/lib/libSpiderGame.so 07-31 23:13:11.780: 错误/AndroidRuntime(1384): 在 android.app.NativeActivity.onCreate(NativeActivity.java:199) 07-31 23:13:11.780: 错误/AndroidRuntime(1384): 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048) 07-31 23:13:11.780: 错误/AndroidRuntime(1384): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1715) 07-31 23:13:11.780: 错误/AndroidRuntime(1384): ... 11 更多 07-31 23:13:11.780: WARN/ActivityManager(288): 强制完成活动 com.Mythica.SpiderGame/android.app.NativeActivity 07-31 23:13:11.800: 错误/android.os.Debug(288): Dumpstate > /data/log/dumpstate_app_error
【问题讨论】:
-
你的 .so 在哪里?你的设备支持 NativeActivity 吗?
-
我认为我的 .so 作为依赖项内置于 .apk 中,但这种假设一定是无效的。设备支持 NativeActivity。
标签: android-ndk android-manifest native-activity