Как я могу скомпилировать исходный код Jnetpcap для Android - PullRequest
0 голосов
/ 28 сентября 2019

Я пытаюсь скомпилировать исходный код C JnetPcap , чтобы создать библиотеку .so для Android arm64-v8a , на самом деле у меня есть библиотека .so для armeabi , которая работает хорошо, но теперь Google Play больше не допускает загрузку приложений с 32-битным кодом (если только не поставляется с его 64-битной версией тоже), поэтому я попытался скомпилировать исходный код длясебя.Я загрузил код sorce из здесь , а также из здесь (поскольку главная страница Sly Technologies не работает) и добавил в свой проект Android Studio с CMake с правильной конфигурацией:

CMakeList.txt (в корневом каталоге проекта)

cmake_minimum_required(VERSION 3.4.1)
add_library( # Specifies the name of the library.
             jnetpcap

             # Sets the library as a shared library.
             SHARED

             # Provides a relative path to your source file(s).
             app/src/main/cpp/jnetpcap.cpp )

include_directories(app/src/main/cpp/libpcap-1.9.0)

build.gradle

android {
    ...
    compileSdkVersion 28
    flavorDimensions 'default'
    defaultConfig {
        applicationId "${id}"
        minSdkVersion minSdk
        targetSdkVersion targetSdk
        versionCode vc * 1
        versionName "${versionMajor}.${versionMinor}.${versionPatch}"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        multiDexEnabled true
        vectorDrawables.useSupportLibrary = true

        ndk.abiFilters 'armeabi-v7a','arm64-v8a'
    }

    ...

    externalNativeBuild {
        cmake {
            path file('../CMakeLists.txt')
        }
    }
}

В моем cpp *В каталог 1028 * Я поместил исходный код и библиотеку libpcap-1.9.0, но по какой-то причине исходный код выглядит неполным, потому что при запуске приложения я получаю ошибки, которые указывают на некоторые библиотеки .h, которые несуществуют (например, org_jnetpcap_packet_JScanner.h, org_jnetpcap_packet_JRegistry.h и т. д.) Я не знаю, генерируются ли эти библиотеки автоматически одним и тем же кодом или что, или, может быть, я неправильно настраиваю конфигурации.

Я действительноМне нужна помощь по этой проблеме, мое приложение зависит от библиотеки JnetPcap , и я не могу загрузить ее в Google Play.Любое предложение?

...