java - 使用 gradle 的应用程序出现错误 "Native method not found"

标签 java android android-ndk gradle

我使用 gradle 生成 apk。安装后发布版本报错:java.lang.UnsatisfiedLinkError: Native method not found: com.fss.e.b.a:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String ;Ljava/lang/String;)Ljava/lang/String;

但调试的看起来不错。我写的build.gradle如下:

apply plugin: 'android'

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    compile project(':fss:libs:actionbarsherlock')
    compile project(':fss:libs:library')
    compile project(':library')
}

android {
    compileSdkVersion 17
    buildToolsVersion "18.0.1"
    signingConfigs {
        myConfig{

        }
    }


    buildTypes{

        release {
            signingConfig  signingConfigs.myConfig
        }


    }

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }

        // Move the tests to tests/java, tests/res, etc...
        instrumentTest.setRoot('tests')
        debug.setRoot('build-types/debug')
        release.setRoot('build-types/release')
    }
}
tasks.withType(Compile) {  
    options.encoding = "UTF-8"  
}  
task copyNativeLibs(type: Copy) {
  from fileTree(dir: 'libs', include: '**/*.so' )
    into  'build/native-libs'
}

tasks.withType(Compile) { compileTask -> compileTask.dependsOn copyNativeLibs }

clean.dependsOn 'cleanCopyNativeLibs'

tasks.withType(com.android.build.gradle.tasks.PackageApplication) { pkgTask ->
    pkgTask.jniDir new File('build/native-libs')
}

最佳答案

添加这些以保留原生方法。错误将得到解决。

-keepclasseswithmembernames class * {
    native <methods>;
}

关于java - 使用 gradle 的应用程序出现错误 "Native method not found",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18803051/

相关文章:

java - 尽管使用了WeakHashMap,但仍发生OutOfMemoryException

java - 我尝试在 Ubuntu 20.04 中的 eclipse 中创建一个新项目,但它给了我这个错误 Errors generated during the build

android - 翻译相对布局并在 Android 动画中获取更改的高度

android - 检测android native 代码中的内存泄漏

Android-NDK:从 native 代码创建 GUI 元素

android - 我如何判断 "inline"是否有效?

java - 访问测试包中的静态变量

android - 如何使用 View 寻呼机 2 转到使用分页 3 加载数据的位置?

java - 从Android手机发送数据到java服务器

java - 如何在运行 Android 应用程序时捕获堆内存使用情况?