繁体   English   中英

Android Studio:使用实验性插件生成.so文件

[英]Android Studio: generating .so files using experimental plugin

我有一个带有本地库的AS项目。 我正在尝试使用实验性插件(gradle-experimental:0.6.0-alpha5)来获取.so文件(以便稍后在System.loadLibrary()中使用。)但是我无法生成它们,而且我确实无法了解,为什么?

我已经使用此指令编写了build.gradle。 就这个:

apply plugin: "com.android.model.application"
model {  
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"

defaultConfig {
    applicationId "com.camera.simplewebcam"
    minSdkVersion.apiLevel 15
    targetSdkVersion.apiLevel 22

    buildConfigFields {
        create() {
            type "int"
            name "VALUE"
            value "1"
        }
    }

    ndk {
        moduleName "ImageProc"
    }
}

buildTypes {
    release {
        minifyEnabled false
        proguardFiles.add(file("proguard-rules.pro"))
    }
}

// Configures source set directory.
sources {
    main {
        jni {
          source {
                srcDir "src/main"
            }
        }
    }
}
productFlavors {
    create("arm") {
        ndk {   
            abiFilters.add("armeabi-v7a")
        }
    }
    create("fat") {           
    }

}
}


dependencies {
    compile fileTree(dir: "lib", include: ['.jar','.so'])
    compile "com.android.support:appcompat-v7:23.+"
}

尝试运行应用程序时出现的错误:

java.lang.UnsatisfiedLinkError:无法从加载程序dalvik.system.PathClassLoader [DexPathList [[zip file // data / app / com.camera.simplewebcam-1.apk“],nativeLibraryDirectories = [/ data / app- lib / com.camera.simplewebcam-1,/ vendor / lib,/ system / lib,/ system / lib / arm]]]:findLibrary返回null

这是我项目的结构: 在此处输入图片说明

这是我的Android.mk:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := ImageProc
LOCAL_SRC_FILES := ImageProc.c
LOCAL_LDLIBS    := -llog -ljnigraphics

include $(BUILD_SHARED_LIBRARY)

这是我的Application.mk:

# The ARMv7 is significanly faster due to the use of the hardware FPU
APP_ABI := armeabi armeabi-v7a
APP_PLATFORM := android-8

我的错误在哪里?

问题在这里targetSdkVersion.apiLevel 22

一个整数,指定应用程序针对的API级别。 如果未设置,则默认值等于给minSdkVersion的默认值。 此属性通知系统您已经针对目标版本进行了测试,并且系统不应启用任何兼容性行为来维持应用程序与目标版本的前向兼容性。 该应用程序仍然可以在较旧的版本(最低为minSdkVersion)上运行。

targetSdkVersion.apiLevel 23

你应该用

compile "com.android.support:appcompat-v7:23.0.1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM