【问题标题】:Gradle doesn't build external projectGradle 不构建外部项目
【发布时间】:2016-10-27 17:04:39
【问题描述】:

Gradle 似乎没有构建我包含的项目:

FATAL EXCEPTION: main
     Process: com.projecttango.examples.cpp.planefitting, PID: 14678 
     java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/system/framework/libtango_device2.jar", zip file "/data/app/com.projecttango.examples.cpp.planefitting-1/base.apk"],nativeLibraryDirectories=[/data/app/com.projecttango.examples.cpp.planefitting-1/lib/arm, /data/app/com.projecttango.examples.cpp.planefitting-1/base.apk!/lib/armeabi-v7a, /vendor/lib, /system/lib]]] couldn't find "libcpp_plane_fitting_example.so"

在我的主要build.gradle:

dependencies {
    compile project(':cpp_example_util')
}

我的顶级build.gradle

buildscript {

    repositories {
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.2'
    }
}

allprojects {
    repositories {
        jcenter()
    }
}
task clean(type: Delete) {
    delete rootProject.buildDir
}

我的外部项目的build.gradle

apply plugin: 'com.android.library'

android {
    compileSdkVersion 19
    buildToolsVersion "24"

    defaultConfig {
        minSdkVersion 17
        targetSdkVersion 19
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}

def external_lib_prefix = null
if (project.hasProperty("Tango.catkin_devel_prefix")) {
    external_lib_prefix = project.property("Tango.catkin_devel_prefix")
}

settings.gradle:

include ':app'
include ':cpp_example_util'
project(':cpp_example_util').projectDir = new File('../cpp_example_util/app')

如错误所示,没有正在构建libcpp_plane_fitting_example 库。

【问题讨论】:

    标签: android gradle


    【解决方案1】:

    由于错误显示为couldn't find "libcpp_plane_fitting_example.so",因此您的 NDK 配置似乎存在一些错误,这可能是它无法访问本机代码的原因。

    要处理 UnsatisfiedLinkError,请使用

    static {
        System.loadLibrary("yourlibraryname");
    }
    

    并确保包签名正确。

    【讨论】:

    • 更多关于 UnsatisfiedLinkError 的信息:stackoverflow.com/questions/3262440/…
    • System.loadLibrary("yourlibraryname"); 导致了这个问题,因为它试图加载一个找不到的库。我发现它找不到那个库,因为它没有被构建,但我不知道为什么它没有被构建(项目 cpp_example_util)
    猜你喜欢
    • 1970-01-01
    • 2016-04-19
    • 2017-12-03
    • 1970-01-01
    • 2015-04-26
    • 2013-01-30
    • 2014-03-07
    • 2015-01-04
    • 1970-01-01
    相关资源
    最近更新 更多