Ich hatte ein Projekt funktioniert gut mit dem normalen Gradle mit zwei separaten gemeinsamen Bibliotheken. Ich war auch die Bibliotheken mit den folgenden gradle Befehle:Wie füge ich eine vorkompilierte, gemeinsam genutzte Bibliothek zu einem vorhandenen NDK-Projekt hinzu?
sourceSets.main
{
jni.srcDirs = []// This means that ndk-build.cmd needs to be invoked from command line
jniLibs.srcDirs "src/main/libs" //include other libraries
}
Ich brauchte eine der beiden Bibliotheken beginnen kompilieren, so zog ich nach experimentellen gradle. Ich habe das für die Bibliothek, die ich baue, gut funktionieren. Aber wenn ich die vorkompilierte shared library hinzufüge, bekomme ich einen Absturz für java.lang.UnsatisfiedLinkError: Keine Implementierung für meine JNI-Methode gefunden. Ich habe den Paketnamen oder die gemeinsam genutzte Bibliothek nicht geändert.
Wenn ich laufe
jar xvf app-release.apk
ich meine gemeinsam benutzte Bibliothek in der Liste der Dateien zu sehen, so dass es von der APK abgeholt wird bauen. Was könnte die Quelle des UnbefriedigtenLinkError sein, wenn die Bibliothek in der APK ist? Wie fügen Sie eine vordefinierte .so-Datei in ein NDK-Projekt ein? Der NDK-Projektcode ruft nicht die zusätzliche Bibliothek auf, sondern nur den Java-Code.