1

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: ローダーから ImageProc を読み込めませんでした dalvik.system.PathClassLoader[DexPathList[[zip ファイル "/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

私のエラーはどこですか?

4

1 に答える 1

1

問題はこちらtargetSdkVersion.apiLevel 22

アプリケーションが対象とする API レベルを指定する整数。設定されていない場合、デフォルト値は minSdkVersion に指定された値と同じです。この属性は、ターゲット バージョンに対してテストしたことをシステムに通知し、システムはターゲット バージョンとのアプリの前方互換性を維持するために互換動作を有効にすべきではありません。アプリケーションは、古いバージョン (minSdkVersion まで) でも実行できます。

行う

targetSdkVersion.apiLevel 23

そして、あなたは使うべきです

compile "com.android.support:appcompat-v7:23.0.1
于 2016-01-25T07:50:54.767 に答える