解决JNI调试报错:No symbol directories found

项目从AS 2.3迁移到AS 3.0编译后,发现无法进行调试。在控制台中输出下面信息:

Attention! No symbol directories found - please check your native debug configuration

在网上搜了一下资料,有人提出了下面的解决方案:

  1. 打开app/build.gradle文件
  2. dependencies标签中加入下面的设置:
releaseCompile project(path: ':youModuleName', configuration: 'release')
debugCompile project(path: ':youModuleName', configuration: 'debug')
  1. 然后打开你的module/build.gradle文件
  2. android标识中加入publishNonDefault true

试验了一下,提示报错:

Unable to resolve dependency for ':app@debug/compileClasspath': Could not resolve project :xxxxx.

貌似是说找不到项目以来的debug配置,继续查找资料,有人说依赖和被依赖的module/build.gradle中需要设置buildTypes并且里面必须包含你所设置的配置项,如:

buildTypes{
      debug{ ... }
      release{ ... }
}

但是我的项目中已经配置该项信息了,最后,经过不懈努力,找到了适合自己的方法:

  1. 首先app/build.gradle文件的dependencies标签中要配置debugCompile project(':youModuleName')

注:这里不设置configuration参数

  1. 然后module/build.gradle文件的android标签中加入publishNonDefault true
  2. 打开moudle的iml文件,找到<facet type="native-android-gradle" name="Native-Android-Gradle">,看一下它的子节点:
<configuration>
        <option name="SELECTED_BUILD_VARIANT" value="debug" />
</configuration>

如果SELECTED_BUILD_VARIANTvalue值不是debug,要改成debug

  1. 然后对项目进行debug,OK!能够断点了!

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 123,133评论 15 534
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 68,660评论 12 116
  • 所有Android插件的基本扩展。 你不需要直接使用这个,你可以选择下面几个合适的直接使用 AppExtensio...
    我该忘了我自己w_u阅读 1,082评论 0 4
  • 贵州三穗县,一落马副县长查出艾滋病 疾控部门要求他供述 与他有染的女性,去体检 结果有三十多人…… 这事大了 女干...
    江南藜果阅读 35评论 0 0
  • 2018.3.25 星期日 日 春暖花开,风和日丽真是一个适合出去郊游的日子。 昨天跟今天我小区都停...
    秋天的雨88阅读 11评论 0 0