Android Studio:JNI检测到应用程序中的错误:本机代码传递到无效的本地引用:0x200001



我尝试在我的应用程序中集成ndk。我使用eclipse,它很好,现在我切换到android studio,我得到一个本机崩溃:

JNI DETECTED ERROR IN APPLICATION: native code passing in reference to invalid local reference: 0x200001

build.gradle

apply plugin: 'com.android.application'
 android {
   compileSdkVersion 19
   buildToolsVersion "22.0.1"
 defaultConfig {
    applicationId "com.example.app"
    minSdkVersion 17
    targetSdkVersion 19
    sourceSets.main {
        jni.srcDirs = []
        jniLibs.srcDir 'src/main/libs'
    }
 }
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
    }
  }
}
dependencies {
  compile files('libs/FlurryAnalytics-5.3.0.jar')
  compile files('libs/jericho-html-3.3.jar')
  compile files('libs/smack.jar')
  compile 'com.android.support:support-v4:22.1.0'
  compile 'com.facebook.android:facebook-android-sdk:4.1.2'
  compile 'com.melnykov:floatingactionbutton:1.3.0'
  compile 'com.google.android.gms:play-services:7.3.0'
  compile 'com.android.support:appcompat-v7:22.1.0'
}

我已经从android studio生成了so个文件,我从eclipse复制了so个文件,并把它放在libs文件夹中。什么帮助。

这是我想要整合的库[vorbis][1].

我发现在调试本机应用程序时使用墓碑非常有帮助。

每次在Android下进程崩溃时,在/data/tombstones目录下创建一个Tombstone文件。里面有关于坠机的重要信息。

你可以在这里阅读更多关于墓碑的信息

在我的例子中,tombstone文件包含回溯,它清楚地表明问题是与DeleteLocalRef函数有关。我发现我不小心在同一个引用上调用了它两次。

backtrace:
    #00 pc 00038094  /system/lib/libc.so (tgkill+12)
    #01 pc 00014261  /system/lib/libc.so (pthread_kill+52)
    #02 pc 00014e7f  /system/lib/libc.so (raise+10)
    #03 pc 000116d5  /system/lib/libc.so (__libc_android_abort+36)
    #04 pc 0000fc1c  /system/lib/libc.so (abort+4)
    #05 pc 00214ded  /system/lib/libart.so (art::Runtime::Abort()+160)
    #06 pc 000a63d3  /system/lib/libart.so (art::LogMessage::~LogMessage()+1322)
    #07 pc 000afb71  /system/lib/libart.so (art::JniAbort(char const*, char const*)+1060)
    #08 pc 000b00cd  /system/lib/libart.so (art::JniAbortF(char const*, char const*, ...)+60)
    #09 pc 000b2455  /system/lib/libart.so (_ZN3art11ScopedCheck5CheckEbPKcz.constprop.128+672)
    #10 pc 000b4fef  /system/lib/libart.so (art::CheckJNI::DeleteLocalRef(_JNIEnv*, _jobject*)+54)
    #11 pc 0007b110  /data/app/com.myapp/lib/arm/mynativelib.so (CMyNativeClass::Copy(_JNIEnv*, CMyNativeClass const&)+2812) 

最新更新