Не найдено JNI_OnLoad в / data / app-lib / + Фатальный сигнал 11 (SIGSEGV) в 0x2d000005 (код = 1) - PullRequest
0 голосов
/ 15 ноября 2018

С месяц я борюсь за то, чтобы безошибочно добавить аудио-файл builds mpegts isomedia, совместимый с Android.Я взял эту библиотеку в C ++ на GitHub и адаптировал метод main для использования с Java через общую библиотеку.

extern "C" JNIEXPORT jint JNICALL Java_com_isomedia_cmd_mpegtscmd_executecopy(JNIEnv *env, jclass cls, std::string *in_file, std::string *out_file )

{

const char* in_file_name = in_file->c_str();
const char* out_file_name = out_file->c_str();

std::cout << "input ts: " << in_file_name << std::endl;
std::cout << "output ts: " << out_file_name << std::endl;

std::ifstream ifile(in_file_name, std::ios::binary | std::ios::in); // declare un flux permettant de lire dans input file
std::ofstream outts(out_file_name, std::ios::binary); // declare un flux pour ecrire dans output file

std::tr1::shared_ptr<MpegTsMuxer> muxer(new MpegTsMuxer);

MpegTsDemuxer demuxer;
char packet[188] = { 0 };

SimpleBuffer in;
SimpleBuffer out;

while (!ifile.eof()) {
    ifile.read(packet, 188);
    in.append(packet, 188);

    TsFrame *frame = 0; //nullptr; You can only use nullptr in Visual Studio 2010 and newer, it is a C++11 feature.
    demuxer.decode(&in, frame);

    write_file(frame);
    if (frame) {
        muxer->encode(frame, demuxer.stream_pid_map, &out);
        outts.write(out.data(), out.size());
        out.erase(out.size());
    }
}

ifile.close();
for (auto it = file_map.begin(); it != file_map.end(); it++) {
    it->second->close();
}

return 0;

}

после загрузки библиотеки в Java я вызываю метод, подобный этому

mpegtscmd.executecopy(f_in.getAbsolutePath(),f_out.getAbsolutePath());

оба файласозданный в том же каталоге, но без данных заполняет сбой программы с ошибкой

No JNI_OnLoad found in /data/app-lib/ +  Fatal signal 11 (SIGSEGV) at 0x2d000005 (code=1)

, что я пытаюсь сделать, это прочитать AAC_ADTS_data в файле f_in, чтобы добавить пакет TS и вставить в f_out.Я точно знаю, что когда я записываю f_in, данные записываются в f_in без проблем.спасибо за любую ожидаемую поддержку.

...