当外部安装为.apk时,无法启动Android应用程序.当使用Android Studio安装时,应用程序在设备上安装得很好.Logcat将错误显示为,

FATAL EXCEPTION: main
Process: com.acme.someprogram, PID: 3806
java.lang.UnsatisfiedLinkError: Can't obtain peer field ID for class com.sun.jna.Pointer
   at com.sun.jna.Native.initIDs(Native Method)
   at com.sun.jna.Native.<clinit>(SourceFile:726)
   at com.sun.jna.Native.r(SourceFile:1)
   at org.vosk.LibVosk.<clinit>(SourceFile)
   at org.vosk.LibVosk.vosk_set_log_level(Native Method)
   at net.acme.someprogram.MainActivity.onCreate(SourceFile:272)
   at android.app.Activity.performCreate(Activity.java:6720)
   at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2622)
   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2730)
   at android.app.ActivityThread.-wrap12(ActivityThread.java)
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1481)
   at android.os.Handler.dispatchMessage(Handler.java:102)
   at android.os.Looper.loop(Looper.java:154)
   at android.app.ActivityThread.main(ActivityThread.java:6145)
   at java.lang.reflect.Method.invoke(Native Method)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

Gradle应用程序脚本是,

plugins {
id 'com.android.application'
}

android {
compileSdk 31

defaultConfig {
    applicationId "com.acme.someprogram"
    minSdk 24
    targetSdk 31
    versionCode 19
    versionName "1.0"

    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}

buildTypes {
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
}
compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}
buildFeatures {
    viewBinding true
}
}

dependencies {
implementation 'androidx.appcompat:appcompat:1.4.1'
implementation 'com.google.android.material:material:1.5.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
implementation 'net.java.dev.jna:jna:5.8.0@aar'
implementation group: 'com.alphacephei', name: 'vosk-android', version: '0.3.32+'
implementation project(':models')
}

关于这方面的具体建议和建议,我们将不胜感激.先谢谢你.

Update:.我已大幅更改这项质询的措辞,以便更准确地反映我所确定的问题症候.

推荐答案

我在Gradle中禁用了代码缩小功能,这个问题就解决了.

android {
    buildTypes {
        release {
            minifyEnabled false
            ...
        }
    }
}

Android相关问答推荐

无法在Android中创建通知频道

Jetpack Compose和Android Studio中的普通设计工具有什么不同?

不能有意地从一个活动的可组合功能转移到另一个活动

如何解决Gradle构建错误:java.lang.NoSuchMethodError

警告:应用必须面向 Android 13(API 级别 33)或更高版本.确实如此

闪屏 API 无法在 Android 12 上运行(API 31、32)

任务:app:kaptGenerateStubsDebugKotlin执行失败. > 'compileDebugJavaWithJavac' 任务(当前目标是 1.8)

当 Jetpack Compose 中的第一个文本很长时,将省略号添加到第一个文本

Android AGP 8 + Gradle 8 + Kotlin 1.8 导致 Kapt 出错

系统导航栏在某些场景下应用了深色效果

AirDroid Business 如何能够从屏幕截图中排除覆盖?

Android:ActivityCompat.requestPermissions 不显示弹窗(Android 13,targetSdkVersion=33)

组成不重叠的元素

在 Jetpack Compose 中更改列中子项的对齐方式

Int 传递给 Intent 但Android工作室说我传递了一个字符串

在 Kotlin 中打开新片段时如何对当前片段应用更改?

为什么官方文档用大写字母表示val变量?

构成material 3 中的分隔符

如何将新的 ComponentActivity 与 ViewBinding 和其他旧的 AppCompatActivity 组件一起使用

未使用的内容填充参数