Android AOSP本机代码链接错误

Android AOSP本机代码链接错误,android,android-source,unsatisfiedlinkerror,Android,Android Source,Unsatisfiedlinkerror,我已经创建了一个在Android Studio中完美运行的应用程序。如果我生成AAR和APK并使用这些文件,它们又可以正常工作。我可以将APK安装在多个设备上,并且它可以完美地工作。现在,当我在AOSP构建中安装APK时,我不断得到一个java.lang.UnsatisfiedLinkError:它指向调用本机方法的第一行代码。我用这个链接作为参考。当我运行emulator并单击我的应用程序时,它会崩溃并产生不满意的链接错误。如果使用AAR文件生成APK,也会发生同样的情况。再次澄清一下,这只发

我已经创建了一个在Android Studio中完美运行的应用程序。如果我生成AAR和APK并使用这些文件,它们又可以正常工作。我可以将APK安装在多个设备上,并且它可以完美地工作。现在,当我在AOSP构建中安装APK时,我不断得到一个java.lang.UnsatisfiedLinkError:它指向调用本机方法的第一行代码。我用这个链接作为参考。当我运行emulator并单击我的应用程序时,它会崩溃并产生不满意的链接错误。如果使用AAR文件生成APK,也会发生同样的情况。再次澄清一下,这只发生在AOSP中,在Android Studio中使用AAR进行其他构建时不会发生,而且无论我在哪个设备上安装APK,APK都会工作。任何关于为什么会发生这种情况的建议都是非常好的

它指向调用我的本机方法的第一行代码

听起来您是在构建包含本机库的应用程序,而您创建的.APK只将一些体系结构类型绑定到其中。如果您有本机库,请确保包含所有体系结构类型(通常由x86和armv7完成,但始终先查阅兼容性检查表),并确保您使用的是正确的APK


请参阅以下指南以确保您有。

AOSP正在尝试查找。以便我的APK从system/lib或vendor/lib文件夹中使用。由于它不在那里,因此导致了不满意的链接错误。因此,通过将.So对象文件目录添加到这些位置,之后,APK在仿真器中启动良好。这也可以通过修改Android.mk以及将这些行添加到文件中来实现

包括美元(净价)
本地_模块:=myfile
LOCAL_SRC_FILES:=lib/myfile.so#或.so所在的任何位置
本地模块标记:=可选
本地模块后缀:=.so
本地\u模块\u类:=共享\u库

include$(BUILD\u prebuild)

您不能直接在手机上安装.aar存档,因为它们用于图书馆项目。我猜你的意思只是.apk achives。对不起,我应该说我也尝试在一个Android.mk中使用aar,AOSP在其中生成一个apk。以下位置包含从AOSP/android/out/target/product/generic/data/app/MyApplicationName生成的APK。当我使用此APK并将其传输到手机时,它会在启动时崩溃,并出现相同的未满足链接错误。我还将APK添加到了/packages/apps/MyApplicationName“我还将APK添加到了
/packages/apps/MyApplicationName
”中,这就足够了。无需在
/android/out/target/product/generic/data/app/MyApplicationNa中复制它‌​me
,让构建系统来构建它。你能发布jni文件夹中的Android.mk和主Android.mk文件吗,mk或jni目录下?@sandeepmaaram所有这些都将添加到您的Android.mk文件中,该文件将根据您的本地_SRC_文件生成一个.so。您还可以手动将生成的.so文件添加到您正在构建的AOSP文件夹中的目录下。多谢各位,上面代码“LOCAL_SRC_FILES:=lib/myfile.so#或您的.so所在的任何位置”的最后一个查询,意思是在.so文件路径AOSP右侧,例如out/target/system/lib/myfile.so。jni文件夹下的Android.mk代码呢???提前谢谢。@sandepmaaram lib/myfile只是指向.so对象位置的文件路径。android.mk代码假设它是一个应用程序,将驻留在该应用程序的文件夹中。当AOSP再次启动构建映像时,它将进入文件夹并读取Android.mk文件