我使用 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/