2017-10-03 2 views
0

Je sais que c'est un long shot. Donc, en utilisant ce projet GitHub Python, je suis actuellement capable d'exécuter Python sur Android avec une version expérimentale de gradle. Nous essayons de mettre à niveau vers Mainline Gradle et le plus récent Android Studio, donc nous essayons de construire tous nos trucs NDK avec cMake. Nous avons tout pour l'exécuter, mais dès que nous lançons Python, il indique qu'il ne parvient pas à importer _socket.Essayer d'exécuter Python sur Android - Avec cmake

Nous avons tous les mêmes assauts et Python dans le projet, nous avons inclus toutes les bibliothèques partagées afin que pense compiler et lier. Des idées ce qui manque que je ne peux pas importer les trucs de socket? Je suppose que c'est un module c qu'il essaie d'importer et de lancer, mais ne peut pas comprendre ce qui serait différent qu'il ne peut pas le trouver.

enter image description here

cmake_minimum_required(VERSION 3.4.1) 
 
project(workflow) 
 

 
set(CMAKE_ANDROID_STL_TYPE gnustl_shared) 
 
set(CMAKE_SYSTEM_VERSION 23) 
 

 
# configure directory variables for use throughout this file 
 
set(distribution_dir ${CMAKE_SOURCE_DIR}/../jniLibs) 
 
set(jni_src_dir ${CMAKE_SOURCE_DIR}/../jni) 
 

 
# set all our include directories (header locations) 
 
include_directories(${jni_src_dir}/asr/inc 
 
        ${jni_src_dir}/ext/android/audioin/inc 
 
        ${jni_src_dir}/asr 
 
        ${jni_src_dir}/python 
 
        ${jni_src_dir}/pdd 
 
        ${jni_src_dir}/pdd/os 
 
        ${jni_src_dir} 
 
) 
 

 
# define the 3rd party libraries to include in this project 
 
# this includes all Nuance stuff, and our custom built python lib 
 
add_library(libgenericdca SHARED IMPORTED) 
 
set_target_properties(libgenericdca PROPERTIES IMPORTED_LOCATION ${distribution_dir}/${ANDROID_ABI}/libgenericdca.so) 
 
add_library(libvocon3200_sem SHARED IMPORTED) 
 
set_target_properties(libvocon3200_sem PROPERTIES IMPORTED_LOCATION ${distribution_dir}/${ANDROID_ABI}/libvocon3200_sem.so) 
 
add_library(libpal_audio SHARED IMPORTED) 
 
set_target_properties(libpal_audio PROPERTIES IMPORTED_LOCATION ${distribution_dir}/${ANDROID_ABI}/libpal_audio.so) 
 
add_library(libpal_core SHARED IMPORTED) 
 
set_target_properties(libpal_core PROPERTIES IMPORTED_LOCATION ${distribution_dir}/${ANDROID_ABI}/libpal_core.so) 
 
add_library(libpython35m SHARED IMPORTED) 
 
set_target_properties(libpython35m PROPERTIES IMPORTED_LOCATION ${distribution_dir}/${ANDROID_ABI}/libpython3.5m.so) 
 
add_library(libvocon3200_asr SHARED IMPORTED) 
 
set_target_properties(libvocon3200_asr PROPERTIES IMPORTED_LOCATION ${distribution_dir}/${ANDROID_ABI}/libvocon3200_asr.so) 
 
add_library(libvocon3200_base SHARED IMPORTED) 
 
set_target_properties(libvocon3200_base PROPERTIES IMPORTED_LOCATION ${distribution_dir}/${ANDROID_ABI}/libvocon3200_base.so) 
 
add_library(libvocon3200_gram2 SHARED IMPORTED) 
 
set_target_properties(libvocon3200_gram2 PROPERTIES IMPORTED_LOCATION ${distribution_dir}/${ANDROID_ABI}/libvocon3200_gram2.so) 
 
add_library(libvocon3200_platform SHARED IMPORTED) 
 
set_target_properties(libvocon3200_platform PROPERTIES IMPORTED_LOCATION ${distribution_dir}/${ANDROID_ABI}/libvocon3200_platform.so) 
 
add_library(libvocon3200_pron SHARED IMPORTED) 
 
set_target_properties(libvocon3200_pron PROPERTIES IMPORTED_LOCATION ${distribution_dir}/${ANDROID_ABI}/libvocon3200_pron.so) 
 
add_library(libvocon3200_sem3 SHARED IMPORTED) 
 
set_target_properties(libvocon3200_sem3 PROPERTIES IMPORTED_LOCATION ${distribution_dir}/${ANDROID_ABI}/libvocon3200_sem3.so) 
 
add_library(libvocon_ext_heap SHARED IMPORTED) 
 
set_target_properties(libvocon_ext_heap PROPERTIES IMPORTED_LOCATION ${distribution_dir}/${ANDROID_ABI}/libvocon_ext_heap.so) 
 
add_library(libvocon_ext_stream SHARED IMPORTED) 
 
set_target_properties(libvocon_ext_stream PROPERTIES IMPORTED_LOCATION ${distribution_dir}/${ANDROID_ABI}/libvocon_ext_stream.so) 
 

 
# set various C and CXX(++) flags 
 
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DNDEBUG") 
 
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11") 
 
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fexceptions") 
 

 
# recursive wildcard search to find all the right cpp and c source files to compile 
 
file(GLOB_RECURSE source_files ${jni_src_dir}/asr/*.cpp 
 
           ${jni_src_dir}/ext/android/audioin/src/*.c 
 
           ${jni_src_dir}/asr/*.cpp 
 
           ${jni_src_dir}/pdd/*.cpp 
 
           ${jni_src_dir}/pdd/os/*.cpp 
 
           ${jni_src_dir}/*.cpp) 
 
SET(workflow_source ${source_files}) 
 

 
# finally, set up our workflow library and attach the source files above (this causes cmake to compile the sources) 
 
add_library(workflow SHARED ${workflow_source}) 
 
# set our workflow library to be C++ 
 
SET_TARGET_PROPERTIES (workflow PROPERTIES LINKER_LANGUAGE CXX) 
 

 
# lastly, set to link against the 3rd party libs above 
 
target_link_libraries(workflow 
 
         android 
 
         libgenericdca 
 
         libvocon3200_sem 
 
         libpal_audio 
 
         libpal_core 
 
         libpython35m 
 
         libvocon3200_asr 
 
         libvocon3200_base 
 
         libvocon3200_gram2 
 
         libvocon3200_platform 
 
         libvocon3200_pron 
 
         libvocon3200_sem3 
 
         libvocon_ext_heap 
 
         libvocon_ext_stream 
 
         log 
 
         atomic)

+1

Post structure du projet et l'Android CMAKE –

+0

Marcos, j'ai posté la structure et cmake. Merci d'avoir jeté un coup d'oeil. –

+0

@MarcosVasconcelos Je ne sais pas si vous avez vu que j'ai ajouté à la publication. Toute aide serait appréciée. –

Répondre

0

Android Studio 3 a été libéré et dans le même temps Gradle 4.1 a été libéré. Maintenant, avec l'aide de ces deux, je suis capable de créer et d'exécuter Python sans problème.

Je suppose que la version 4.1 de Gradle a eu quelques changements qui ont corrigé mon problème.