Qt on Android应用安装到/system/app下

yiyanxie 2014-12-19 05:44:21
我是android新手,现在有一个问题需要各位牛人帮忙解答一下。
我有一个应用,应用中需要加载自己的库liblauncher.so,这个应用手动安装到用户目录下可用正常运行,现在需要把应用移到/system/app下,我的操作如下:
1、拷贝apk到/system/app下
2、拷贝so到/system/lib下
3、修改apk和so的权限及用户组为 644/root/root
运行时,程序在加载so时报错
01-01 14:03:43.920: W/System.err(4139): java.lang.Exception: Can't find main library 'launcher'
01-01 14:03:43.920: W/System.err(4139): at org.qtproject.qt5.android.QtNative.startApplication(QtNative.java:201)
01-01 14:03:43.920: W/System.err(4139): at org.qtproject.qt5.android.QtActivityDelegate.startApplication(QtActivityDelegate.java:648)
01-01 14:03:43.920: W/System.err(4139): at java.lang.reflect.Method.invokeNative(Native Method)
01-01 14:03:43.920: W/System.err(4139): at java.lang.reflect.Method.invoke(Method.java:511)
01-01 14:03:43.920: W/System.err(4139): at org.qtproject.qt5.android.bindings.QtActivity.loadApplication(QtActivity.java:265)
01-01 14:03:43.920: W/System.err(4139): at org.qtproject.qt5.android.bindings.QtActivity.startApp(QtActivity.java:658)
01-01 14:03:43.920: W/System.err(4139): at org.qtproject.qt5.android.bindings.QtActivity.onCreate(QtActivity.java:889)
01-01 14:03:43.920: W/System.err(4139): at com.cslc.edbox.EDBoxActivity.onCreate(EDBoxActivity.java:26)
01-01 14:03:43.920: W/System.err(4139): at android.app.Activity.performCreate(Activity.java:5104)
01-01 14:03:43.920: W/System.err(4139): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
01-01 14:03:43.920: W/System.err(4139): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
01-01 14:03:43.920: W/System.err(4139): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
01-01 14:03:43.920: W/System.err(4139): at android.app.ActivityThread.access$600(ActivityThread.java:141)
01-01 14:03:43.920: W/System.err(4139): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
01-01 14:03:43.920: W/System.err(4139): at android.os.Handler.dispatchMessage(Handler.java:99)
01-01 14:03:43.920: W/System.err(4139): at android.os.Looper.loop(Looper.java:137)
01-01 14:03:43.920: W/System.err(4139): at android.app.ActivityThread.main(ActivityThread.java:5041)
01-01 14:03:43.920: W/System.err(4139): at java.lang.reflect.Method.invokeNative(Native Method)
01-01 14:03:43.920: W/System.err(4139): at java.lang.reflect.Method.invoke(Method.java:511)
01-01 14:03:43.920: W/System.err(4139): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:816)
01-01 14:03:43.920: W/System.err(4139): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:582)
01-01 14:03:43.920: W/System.err(4139): at dalvik.system.NativeStart.main(Native Method)

另外:我把so放在 /data/app-lib/xxxx/下也可以正常运行。
...全文
189 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yiyanxie 2014-12-22
  • 打赏
  • 举报
回复
有人能帮帮解决一下吗?多谢啦!
yiyanxie 2014-12-22
  • 打赏
  • 举报
回复
这个错误的原因找到了,还是因为路径的原因,程序中加载so是在nativeLibraryDir下查找,代码如下: public static String nativeLibrariesDir(Activity activity) { String m_nativeLibraryDir = null; try { ApplicationInfo ai = activity.getPackageManager().getApplicationInfo(activity.getPackageName(), 0); m_nativeLibraryDir = ai.nativeLibraryDir+"/"; } catch (NameNotFoundException e) { e.printStackTrace(); } return m_nativeLibraryDir; } 由于这段代码是开发库的源码,我不想去修改开发库代码,有谁知道如何把nativeLibraryDir改为 /system/lib 吗?
yiyanxie 2014-12-19
  • 打赏
  • 举报
回复
引用 1 楼 yanxing2012 的回复:
权限改为777,重启手机试试
改为777后运行(没重启时)报找不到class(MyApplication),重启后运行还是报 Can't find main library 'launcher'
yanxing2012 2014-12-19
  • 打赏
  • 举报
回复
权限改为777,重启手机试试

80,350

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧