2

ネイティブのみのライブラリに依存関係を定義できるようになったと思われますが、複数の依存関係を追加する際に問題が発生しています。

apply plugin: 'com.android.model.library'

model {
    android {
        compileSdkVersion 23
        buildToolsVersion "23.0.2"

        defaultConfig {
            minSdkVersion.apiLevel 11
            targetSdkVersion.apiLevel 22
            versionCode = 1
            versionName = "1.0"
        }

        sources {
            //noinspection GroovyAssignabilityCheck
            main {
                jni {
                    dependencies {
                        project ":libraw"
                        project ":libjpeg"
                    }
                }
            }
        }

        ndk {
            moduleName "rawprocessor"
            cppFlags.add("-fexceptions")
            ldLibs.add("log")
            stl "gnustl_shared"
        }
    }
}

2 つのライブラリはcom.android.model.native.so を適切に生成します。

ヘッダーは foo から読み込まれますが、bar からは読み込まれません。行を交換すると、バーからロードされますが、foo からはロードされません。複数の依存関係をロードする方法はありますか?

更新(実際のエラー メッセージ、完全な build.gradle を追加)

undefined reference to 'jpeg_std_error'
undefined reference to 'jpeg_CreateDecompress' 
undefined reference to 'jpeg_mem_src' 

これらは、集合ライブラリ内の libjpeg への参照に対して継続します。libjpeg を最初にスワップすると、他のライブラリの呼び出しに対して同じ未定義の参照が取得されます。

undefined reference to `open_file(char const*, long long)'
undefined reference to `recycle()'

更新 2

集約ライブラリ モジュール (上記の build.gradle) を追加すると、ビルド プロセスで 2 番目のライブラリがビルドされないことに気付きました。そのライブラリをコメントアウトすると、両方のネイティブ専用ライブラリがビルドされます。librawにも依存しているため、何か問題があるのではないかと思い始めていlibjpegます。

4

0 に答える 0