我对问题的答案做了很多研究,但没有发现任何东西。 我无法在项目中添加.so库。
我将库放在/ app / src / main / jniLibs / arm64-v8a中。该项目将完成,但是在执行时会出现以下错误。
谢谢所有答案。
Structure of directorys is here。 arm64-v8a是我的系统的正确文件夹。
build.gradle:
public static function getModelByTable($table)
{
if (!$table) return false;
$model = false;
switch ($table) {
case 'faq':
$model = Faq::class;
break;
case 'faq_items':
$model = FaqItems::class;
break;
}
if ($model) {
try {
$model = app()->make($model);
} catch (\Exception $e) {
}
}
return $model;
}
日志:
apply plugin: 'com.android.application'
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.example.vtas_kassenterminal"
minSdkVersion 27
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/notice.txt'
exclude 'META-INF/ASL2.0'
exclude 'org/apache/http/version.properties'
exclude 'org/apache/http/nio/version.properties'
exclude 'org/apache/http/client/version.properties'
exclude 'org.apache.http.impl.nio.DefaultHttpServerIODispatch'
}
productFlavors {
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support:support-v4:28.0.0'
implementation 'com.squareup.okhttp3:okhttp:3.9.1'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation files('libs/acssmc-1.1.4.jar')
implementation 'org.jetbrains:annotations-java5:15.0'
implementation 'com.android.volley:volley:1.1.0'
}
答案 0 :(得分:0)
这意味着 libpcsclite.so 在 arms64-v8a 文件夹中找不到。尝试删除.so文件中的多余字符 .1.0.0 (我在图片中看到了此内容)
如果上述解决方案不起作用,请遵循以下内容。
.so文件不仅可以在 arms64-v8a 文件夹中使用。将您的.so文件添加到 armeabi-v7a 目录中。文件夹名称取决于电话硬件(可能是处理器)。
.so文件对于特定文件夹(例如 arms64-v8a 或 armeabi-v7a 等)可能会有所不同。通常,最大的设备保护范围 armeabi-v7a 。
答案 1 :(得分:0)
您应该编写以上代码,以便gradle能够在项目的jniLibs文件夹中找到“ .so”文件。
android {
sourceSets {
main {
jniLibs.srcDirs = ['src/main/jnilibs']
}
}
}