0

その関数を使用するために、Java ファイルに ,c fileを含めようとしています。ImageProc

からコードを取得しましたMjpegInputStream file(すべてが機能するはずですが、もちろんそれほど簡単ではありません)

クラッシュするコードは次のとおりです(どういうわけかキャッチがキャッチしていません)

static {
    try {
        System.loadLibrary("ImageProc");
    }
    catch (Exception e){
        e.getMessage();
    }
}

makefile

include $(CLEAR_VARS)
LOCAL_MODULE    := ImageProc
LOCAL_SRC_FILES := ImageProc.c
LOCAL_LDLIBS    := -llog -ljnigraphics
LOCAL_SHARED_LIBRARIES := prebuilt-libjpeg
LOCAL_C_INCLUDES       := external/include jni/external/include

したがって、私の理解では、 を使用できるはずImageProcです。

c file最初は h ファイルの参照が見つからなかったため、実行してコンパイルしたことはわかっています (現在は修正されています)。

私が確信していないもう1つのことはpixeltobmp、cファイルで定義されている関数を呼び出していることJava_com_camera_simplemjpeg_MjpegInputStream_pixeltobmpです。メソッドの名前を変更して、コピー元のパッケージではなく、使用しているパッケージを含めようとしましたが、何も修正されませんでした。

どんな助けでも大歓迎です。

追加情報: gradle build 2.10 を使用しています

4

3 に答える 3

1
 1. Compile your library
 2. Check if you have the .so compiled library(this is important!)
 3. In your gradle file add this:

      android {  
        compileSdkVersion 23
            buildToolsVersion "22.0.1"

            defaultConfig {
                minSdkVersion 18
                    targetSdkVersion 23
                    versionCode 1
                    versionName "1.0"
                }

                sourceSets.main {
                    jni.srcDirs = []
                    File configFile = file('pathToYourLibsFolder')
                    jniLibs.srcDir configFile.absolutePath
                }

その後、動作するはずです。

于 2016-03-01T19:24:06.317 に答える
0

build.gradle で

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

        defaultConfig {
           ...
        }
        buildTypes {
            ...
        }
        ndk {
            moduleName "ImageProc"
            // stl "stlport_static"
            // ldLibs "log"
        }
    }

}
于 2016-02-15T05:17:02.463 に答える