【发布时间】:2019-09-23 08:38:45
【问题描述】:
我正在为 device 开发一个应用程序,它本身有一个 SDK。
当我尝试在我的应用程序中将其 SDK 作为库导入时,我会收到如下错误:
E/MultiWindowProxy: getServiceInstance failed!
E/MultiWindowProxy: getServiceInstance failed!
E/AndroidRuntime: FATAL EXCEPTION: Thread-571
Process: cards.mena.app, PID: 9484
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/cards.mena.app-2/base.apk"],nativeLibraryDirectories=[/data/app/cards.mena.app-2/lib/arm, /vendor/lib, /system/lib]]] couldn't find "libserial_port.so"
at java.lang.Runtime.loadLibrary(Runtime.java:367)
at java.lang.System.loadLibrary(System.java:1076)
at android_serialport_api.SerialPort.<clinit>(Unknown Source)
at com.rt.printerlibrary.driver.serialport.ComDriver.a(Unknown Source)
at com.rt.printerlibrary.driver.serialport.ComDriver.run(Unknown Source)
我将.Jar 文件和.so 放入我的应用程序中的libs 文件夹,如下所示:
这是我的Gradle 文件:
android {
compileSdkVersion 28
defaultConfig {
applicationId "cards.mena.app"
minSdkVersion 21
targetSdkVersion 28
versionCode 10002
versionName "1.0.2"
setProperty("archivesBaseName", "MenaCards-v$versionName")
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
dataBinding {
enabled = true
}
sourceSets {
main {
// manifest.srcFile 'AndroidManifest.xml'
jniLibs.srcDirs = ['libs']
// java.srcDirs = ['src']
// resources.srcDirs = ['src']
assets.srcDirs = ['assets']
}
}
}
androidExtensions {
experimental = true
}
kapt {
generateStubs = true
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation "org.jetbrains.anko:anko-commons:0.10.8"
implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'com.google.android.material:material:1.0.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation "com.android.support:design:$supportLibraryVersion"
/*----------------/ Printer Libs \---------------------------*/
implementation files('libs/printer_library_ap02.jar')
更新: 我将 Gradle 表单 3.5.0 降级到 2.3.2,我的应用程序现在可以运行了!
那么问题就出在 Gradle 上!这和我有什么关系?
【问题讨论】:
-
看起来您的代码缺少
System.loadLibrary调用。 -
你这是什么意思?你能解释一下吗@Miha_x64
-
互联网上有足够的信息。 docs.oracle.com/javase/7/docs/api/java/lang/…
-
@Miha_x64 那不是解决方案
-
@Ehsan 我也在将 sdk 集成到我的移动应用程序中,但面临一些对齐问题,如果你也遇到过同样的问题,请告诉我.. 这是我的 Skype id:vishwapratap3
标签: android android-studio android-library