- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是 log1 应用程序输出:
: ... 25 more
W/System.err( 1500): java.lang.ClassNotFoundException: android.graphics.drawable.VectorDrawable
W/System.err( 1500): at java.lang.Class.classForName(Native Method)
W/System.err( 1500): at java.lang.Class.forName(Class.java:217)
W/System.err( 1500): at java.lang.Class.forName(Class.java:172)
W/System.err( 1500): at org.qtproject.qt5.android.ExtractStyle.getClass(ExtractStyle.java:388)
W/System.err( 1500): at org.qtproject.qt5.android.ExtractStyle.<init>(ExtractStyle.java:94)
W/System.err( 1500): at org.qtproject.qt5.android.QtActivityDelegate.loadApplication(QtActivityDelegate.java:430)
W/System.err( 1500): at java.lang.reflect.Method.invokeNative(Native Method)
W/System.err( 1500): at java.lang.reflect.Method.invoke(Method.java:511)
W/System.err( 1500): at org.qtproject.qt5.android.bindings.QtActivity.loadApplication(QtActivity.java:245)
W/System.err( 1500): at org.qtproject.qt5.android.bindings.QtActivity.startApp(QtActivity.java:655)
W/System.err( 1500): at org.qtproject.qt5.android.bindings.QtActivity.onCreate(QtActivity.java:895)
W/System.err( 1500): at android.app.Activity.performCreate(Activity.java:5275)
W/System.err( 1500): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1082)
W/System.err( 1500): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2049)
W/System.err( 1500): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2110)
W/System.err( 1500): at android.app.ActivityThread.access$600(ActivityThread.java:138)
W/System.err( 1500): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205)
W/System.err( 1500): at android.os.Handler.dispatchMessage(Handler.java:99)
W/System.err( 1500): at android.os.Looper.loop(Looper.java:137)
W/System.err( 1500): at android.app.ActivityThread.main(ActivityThread.java:4950)
W/System.err( 1500): at java.lang.reflect.Method.invokeNative(Native Method)
W/System.err( 1500): at java.lang.reflect.Method.invoke(Method.java:511)
W/System.err( 1500): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:798)
W/System.err( 1500): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:565)
W/System.err( 1500): at dalvik.system.NativeStart.main(Native Method)
W/System.err( 1500): Caused by: java.lang.NoClassDefFoundError: android/graphics/drawable/VectorDrawable
W/System.err( 1500): ... 25 more
W/System.err( 1500): Caused by: java.lang.ClassNotFoundException: android.graphics.drawable.VectorDrawable
W/System.err( 1500): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
W/System.err( 1500): at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
W/System.err( 1500): at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
W/System.err( 1500): ... 25 more
W/System.err( 1500): java.lang.NoSuchFieldException: View_paddingStart
W/System.err( 1500): at java.lang.Class.getDeclaredField(Class.java:631)
W/System.err( 1500): at org.qtproject.qt5.android.ExtractStyle.getField(ExtractStyle.java:427)
W/System.err( 1500): at org.qtproject.qt5.android.ExtractStyle.<init>(ExtractStyle.java:173)
W/System.err( 1500): at org.qtproject.qt5.android.QtActivityDelegate.loadApplication(QtActivityDelegate.java:430)
W/System.err( 1500): at java.lang.reflect.Method.invokeNative(Native Method)
W/System.err( 1500): at java.lang.reflect.Method.invoke(Method.java:511)
W/System.err( 1500): at org.qtproject.qt5.android.bindings.QtActivity.loadApplication(QtActivity.java:245)
W/System.err( 1500): at org.qtproject.qt5.android.bindings.QtActivity.startApp(QtActivity.java:655)
W/System.err( 1500): at org.qtproject.qt5.android.bindings.QtActivity.onCreate(QtActivity.java:895)
W/System.err( 1500): at android.app.Activity.performCreate(Activity.java:5275)
W/System.err( 1500): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1082)
W/System.err( 1500): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2049)
W/System.err( 1500): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2110)
W/System.err( 1500): at android.app.ActivityThread.access$600(ActivityThread.java:138)
W/System.err( 1500): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205)
W/System.err( 1500): at android.os.Handler.dispatchMessage(Handler.java:99)
W/System.err( 1500): at android.os.Looper.loop(Looper.java:137)
W/System.err( 1500): at android.app.ActivityThread.main(ActivityThread.java:4950)
W/System.err( 1500): at java.lang.reflect.Method.invokeNative(Native Method)
W/System.err( 1500): at java.lang.reflect.Method.invoke(Method.java:511)
W/System.err( 1500): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:798)
W/System.err( 1500): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:565)
W/System.err( 1500): at dalvik.system.NativeStart.main(Native Method)
W/System.err( 1500): java.lang.NoSuchFieldException: View_paddingEnd
W/System.err( 1500): at java.lang.Class.getDeclaredField(Class.java:631)
W/System.err( 1500): at org.qtproject.qt5.android.ExtractStyle.getField(ExtractStyle.java:427)
W/System.err( 1500): at org.qtproject.qt5.android.ExtractStyle.<init>(ExtractStyle.java:174)
W/System.err( 1500): at org.qtproject.qt5.android.QtActivityDelegate.loadApplication(QtActivityDelegate.java:430)
W/System.err( 1500): at java.lang.reflect.Method.invokeNative(Native Method)
W/System.err( 1500): at java.lang.reflect.Method.invoke(Method.java:511)
W/System.err( 1500): at org.qtproject.qt5.android.bindings.QtActivity.loadApplication(QtActivity.java:245)
W/System.err( 1500): at org.qtproject.qt5.android.bindings.QtActivity.startApp(QtActivity.java:655)
W/System.err( 1500): at org.qtproject.qt5.android.bindings.QtActivity.onCreate(QtActivity.java:895)
W/System.err( 1500): at android.app.Activity.performCreate(Activity.java:5275)
W/System.err( 1500): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1082)
W/System.err( 1500): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2049)
W/System.err( 1500): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2110)
W/System.err( 1500): at android.app.ActivityThread.access$600(ActivityThread.java:138)
W/System.err( 1500): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205)
W/System.err( 1500): at android.os.Handler.dispatchMessage(Handler.java:99)
W/System.err( 1500): at android.os.Looper.loop(Looper.java:137)
W/System.err( 1500): at android.app.ActivityThread.main(ActivityThread.java:4950)
W/System.err( 1500): at java.lang.reflect.Method.invokeNative(Native Method)
W/System.err( 1500): at java.lang.reflect.Method.invoke(Method.java:511)
W/System.err( 1500): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:798)
W/System.err( 1500): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:565)
W/System.err( 1500): at dalvik.system.NativeStart.main(Native Method)
D/dalvikvm( 1500): GC_CONCURRENT freed 494K, 14% free 5744K/6663K, paused 81ms+191ms, total 320ms
D/dalvikvm( 1500): WAIT_FOR_CONCURRENT_GC blocked 18ms
W/ResourceType( 1500): Skipping entry 0x10804c7 in package table 0 because it is not complex!
D/dalvikvm( 1500): GC_CONCURRENT freed 462K, 14% free 5843K/6727K, paused 34ms+3ms, total 75ms
D/dalvikvm( 1500): WAIT_FOR_CONCURRENT_GC blocked 18ms
D/dalvikvm( 1500): GC_FOR_ALLOC freed 541K, 15% free 5829K/6791K, paused 18ms, total 18ms
D/dalvikvm( 1500): GC_CONCURRENT freed 409K, 13% free 5932K/6791K, paused 55ms+3ms, total 95ms
D/dalvikvm( 1500): WAIT_FOR_CONCURRENT_GC blocked 40ms
D/dalvikvm( 1500): GC_CONCURRENT freed 501K, 14% free 5990K/6919K, paused 67ms+2ms, total 100ms
D/dalvikvm( 1500): WAIT_FOR_CONCURRENT_GC blocked 36ms
D/dalvikvm( 1500): GC_CONCURRENT freed 544K, 15% free 5999K/6983K, paused 2ms+3ms, total 63ms
D/dalvikvm( 1500): WAIT_FOR_CONCURRENT_GC blocked 44ms
D/dalvikvm( 1500): GC_FOR_ALLOC freed 477K, 14% free 6032K/6983K, paused 17ms, total 18ms
D/dalvikvm( 1500): GC_CONCURRENT freed 479K, 14% free 6065K/6983K, paused 63ms+2ms, total 106ms
D/dalvikvm( 1500): WAIT_FOR_CONCURRENT_GC blocked 43ms
D/dalvikvm( 1500): GC_FOR_ALLOC freed 489K, 14% free 6072K/7047K, paused 19ms, total 20ms
D/dalvikvm( 1500): GC_CONCURRENT freed 438K, 13% free 6137K/7047K, paused 31ms+3ms, total 72ms
D/dalvikvm( 1500): WAIT_FOR_CONCURRENT_GC blocked 43ms
D/dalvikvm( 1500): GC_FOR_ALLOC freed 299K, 14% free 6143K/7111K, paused 19ms, total 19ms
D/dalvikvm( 1500): GC_FOR_ALLOC freed 30K, 14% free 6156K/7111K, paused 19ms, total 19ms
D/dalvikvm( 1500): GC_FOR_ALLOC freed 38K, 14% free 6149K/7111K, paused 19ms, total 19ms
D/dalvikvm( 1500): GC_FOR_ALLOC freed 499K, 14% free 6158K/7111K, paused 20ms, total 21ms
D/dalvikvm( 1500): GC_CONCURRENT freed 531K, 14% free 6138K/7111K, paused 17ms+3ms, total 80ms
D/dalvikvm( 1500): WAIT_FOR_CONCURRENT_GC blocked 63ms
I/Adreno200-EGL( 1500): <qeglDrvAPI_eglInitialize:299>: EGL 1.4 QUALCOMM build: AU_LINUX_ANDROID_JB_REL_2.0.3_RB3.04.01.01.42.006_msm7627a_JB_REL_2.0.3_Merge_release_AU (Merge)
I/Adreno200-EGL( 1500): Build Date: 04/01/13 Mon
I/Adreno200-EGL( 1500): Local Branch:
I/Adreno200-EGL( 1500): Remote Branch: m/jb_rel_2.0.3
I/Adreno200-EGL( 1500): Local Patches: NONE
I/Adreno200-EGL( 1500): Reconstruct Branch: NOTHING
I/Choreographer( 1500): Skipped 31 frames! The application may be doing too much work on its main thread.
D/libtestAndroid4.so( 1500): (null):0 ((null)): -----------------------------P-8------------------------------------
D/libtestAndroid4.so( 1500): (null):0 ((null)): -----------------------------P-9------------------------------------
W/IInputConnectionWrapper( 1500): getCursorCapsMode on inactive InputConnection
D/libtestAndroid4.so( 1500): (null):0 ((null)): -----------------------------P-2------------------------------------
F/libc ( 1500): Fatal signal 11 (SIGSEGV) at 0x007a7a76 (code=1), thread 1567 (le.testAndroid4)
I/DEBUG ( 147): pid: 1500, tid: 1567, name: le.testAndroid4 >>> org.qtproject.example.testAndroid4 <<<
"org.qtproject.example.testAndroid4" died.
log1编译输出:
Android package built successfully in 29.282 ms.
-- It can now be run from the selected device/emulator.
-- File: C:/Users/niki/Documents/build-testAndroid4-Android_for_armeabi_v7a_GCC_4_9_Qt_5_5_1-Release/android-build//bin/QtApp-debug.apk
3064 KB/s (15889430 bytes in 5.064s)
11:15:26: The process "C:/Qt/5.5/android_armv7/bin/androiddeployqt.exe" exited normally.
11:15:26: Pulling files necessary for debugging.
11:15:26: Package deploy: Running command "C:/Users/niki/AppData/Local/Android/android-sdk/platform-tools/adb.exe -s LGOTMS328ac0aa pull /system/bin/sh: readlink: not found C:/Users/niki/Documents/build-testAndroid4-Android_for_armeabi_v7a_GCC_4_9_Qt_5_5_1-Release/app_process".
11:15:26: Packaging error: Command "C:/Users/niki/AppData/Local/Android/android-sdk/platform-tools/adb.exe -s LGOTMS328ac0aa pull /system/bin/sh: readlink: not found C:/Users/niki/Documents/build-testAndroid4-Android_for_armeabi_v7a_GCC_4_9_Qt_5_5_1-Release/app_process" failed.Exit code: 1
11:15:26: Package deploy: Running command "C:/Users/niki/AppData/Local/Android/android-sdk/platform-tools/adb.exe -s LGOTMS328ac0aa pull /system/lib/libc.so C:/Users/niki/Documents/build-testAndroid4-Android_for_armeabi_v7a_GCC_4_9_Qt_5_5_1-Release/libc.so".
11:15:26: Elapsed time: 00:53.
log2 应用程序输出:
...
I/Adreno200-EGL( 3188): Build Date: 04/01/13 Mon
I/Adreno200-EGL( 3188): Local Branch:
I/Adreno200-EGL( 3188): Remote Branch: m/jb_rel_2.0.3
I/Adreno200-EGL( 3188): Local Patches: NONE
I/Adreno200-EGL( 3188): Reconstruct Branch: NOTHING
D/libtestAndroid4.so( 3188): (null):0 ((null)): -----------------------------P-8------------------------------------
D/libtestAndroid4.so( 3188): (null):0 ((null)): -----------------------------P-9------------------------------------
D/libtestAndroid4.so( 3188): (null):0 ((null)): -----------------------------P-2------------------------------------
D/libtestAndroid4.so( 3188): (null):0 ((null)): -----------------------------P-3------------------------------------
D/libtestAndroid4.so( 3188): (null):0 ((null)): -----------------------------P-4------------------------------------
D/libtestAndroid4.so( 3188): (null):0 ((null)): -----------------------------P-5------------------------------------
D/libtestAndroid4.so( 3188): (null):0 ((null)): -----------------------------P-10------------------------------------
D/libtestAndroid4.so( 3188): (null):0 ((null)): -----------------------------P-1------------------------------------
D/libtestAndroid4.so( 3188): (null):0 ((null)): -----------------------------P-11------------------------------------
D/libtestAndroid4.so( 3188): (null):0 ((null)): -----------------------------P-12------------------------------------
D/libtestAndroid4.so( 3188): (null):0 ((null)): -----------------------------P-2------------------------------------
D/libtestAndroid4.so( 3188): (null):0 ((null)): -----------------------------P-3------------------------------------
D/libtestAndroid4.so( 3188): (null):0 ((null)): -----------------------------P-4------------------------------------
D/libtestAndroid4.so( 3188): (null):0 ((null)): -----------------------------P-5------------------------------------
D/libtestAndroid4.so( 3188): (null):0 ((null)): -----------------------------P-13------------------------------------
D/libtestAndroid4.so( 3188): (null):0 ((null)): -----------------------------P-14------------------------------------
F/libc ( 3188): Fatal signal 11 (SIGSEGV) at 0xdeadcab1 (code=1), thread 3269 (le.testAndroid4)
I/DEBUG ( 147): pid: 3188, tid: 3269, name: le.testAndroid4 >>> org.qtproject.example.testAndroid4 <<<
I/ActivityManager( 457): Process org.qtproject.example.testAndroid4 (pid 3188) has died.
"org.qtproject.example.testAndroid4" died.
现在是源代码:
logindialog.h
#ifndef LOGINDIALOG_H
#define LOGINDIALOG_H
#include <QDialog>
#include <QDebug>
namespace Ui {
class loginDialog;
}
class loginDialog : public QDialog
{
Q_OBJECT
public:
explicit loginDialog(QWidget *parent = 0);
~loginDialog();
bool isDecrypted();
std::string getPassword();
private slots:
void on_passwordButton_clicked();
private:
Ui::loginDialog *ui;
bool decrypted;
std::string password;
};
#endif // LOGINDIALOG_H
主窗口.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <fstream>
//#include <sha.h>
//#include <pwdbased.h>
//#include <osrng.h>
//#include <sstream>
//#include <iomanip>
//#include <cryptlib.h>
//using CryptoPP::Exception;
//#include <hex.h>
//using CryptoPP::HexEncoder;
//using CryptoPP::HexDecoder;
//#include <filters.h>
//using CryptoPP::StringSink;
#include "logindialog.h"
#include <QMessageBox>
#include <QDebug>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
void on_pushButton_2_clicked();
void on_pushButton_clicked();
private:
Ui::MainWindow *ui;
bool getEnterPassword(std::string &);
};
#endif // MAINWINDOW_H
logindialog.cpp
#include "logindialog.h"
#include "ui_logindialog.h"
loginDialog::loginDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::loginDialog)
{
ui->setupUi(this);
}
loginDialog::~loginDialog()
{
delete ui;
}
void loginDialog::on_passwordButton_clicked()
{
qDebug() << "-----------------------------P-2------------------------------------";
this->password = ui->lineEdit->text().toStdString();
qDebug() << "-----------------------------P-3------------------------------------";
this->decrypted = true; //TODO decrypt the file and if there is exception set as false
qDebug() << "-----------------------------P-4------------------------------------";
this->accept();
qDebug() << "-----------------------------P-5------------------------------------";
}
bool loginDialog::isDecrypted()
{
return this->decrypted;
}
std::string loginDialog::getPassword()
{
return this->password;
}
主窗口.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
byte ivec[16];
byte salt[32];
CryptoPP::OS_GenerateRandomBlock(false, salt, sizeof(salt));
CryptoPP::OS_GenerateRandomBlock(false, ivec, sizeof(ivec));
std::string v;
CryptoPP::HexEncoder hex(new CryptoPP::StringSink(v));
hex.Put(salt, sizeof(salt));
hex.MessageEnd();
QMessageBox::about(this,tr("Test1"),tr(v.c_str()));
QMessageBox::about(this,tr("Test1"),tr("XXX"));
}
void MainWindow::on_pushButton_2_clicked()
{
std::string password;
if(getEnterPassword(password)==false)
{
QMessageBox::about(this,tr("Failed"),tr("Password does not match!"));
}
else
{
QMessageBox::about(this,tr("Failed"),tr("Password match!"));
}
}
bool MainWindow::getEnterPassword(std::string &password)
{
loginDialog passwordWindow;
qDebug() << "-----------------------------P-8------------------------------------";
passwordWindow.setModal(true);
qDebug() << "-----------------------------P-9------------------------------------";
passwordWindow.exec();
qDebug() << "-----------------------------P-10------------------------------------";
qDebug() << "-----------------------------P-1------------------------------------";
loginDialog passwordWindowRe;
qDebug() << "-----------------------------P-11------------------------------------";
passwordWindowRe.setModal(true);
qDebug() << "-----------------------------P-12------------------------------------";
passwordWindowRe.exec();
qDebug() << "-----------------------------P-13------------------------------------";
//qDebug() << passwordWindow.getPassword().c_str();
//qDebug() << passwordWindowRe.getPassword().c_str();
qDebug() << "-----------------------------P-14------------------------------------";
if(passwordWindow.getPassword() == passwordWindowRe.getPassword())
{
qDebug() << "-----------------------------P-15------------------------------------";
password = passwordWindow.getPassword();
qDebug() << "-----------------------------P-16------------------------------------";
return true;
qDebug() << "-----------------------------P-17------------------------------------";
}
else
{
qDebug() << "-----------------------------P-18------------------------------------";
return false;
}
}
最重要的是:testAndroid4.pro
#-------------------------------------------------
#
# Project created by QtCreator 2015-12-02T17:56:00
#
#-------------------------------------------------
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = testAndroid4
TEMPLATE = app
SOURCES += main.cpp\
mainwindow.cpp \
logindialog.cpp
HEADERS += mainwindow.h \
logindialog.h
FORMS += mainwindow.ui \
logindialog.ui
CONFIG += mobility
MOBILITY =
INCLUDEPATH += C:\Temp\openssl\OpenSSL-for-Android-Prebuilt\openssl-1.0.2\include\
LIBS += -LC:\Temp\openssl\OpenSSL-for-Android-Prebuilt\openssl-1.0.2\armeabi-v7a\lib -lssl
LIBS += -LC:\Temp\openssl\OpenSSL-for-Android-Prebuilt\openssl-1.0.2\armeabi-v7a\lib -lcrypto
ANDROID_EXTRA_LIBS += C:\Users\niki\Downloads\android-ndk-r10e\sources\cxx-stl\stlport\libs\armeabi-v7a\libstlport_shared.so
ANDROID_EXTRA_LIBS += C:\Temp\cryptopp\cryptopp-5.6.2-android-14\cryptopp-android-14\lib1\libcryptopp.so
INCLUDEPATH += C:\Temp\cryptopp\cryptopp-5.6.2-android-14\cryptopp-android-14\include\cryptopp\
LIBS += -LC:\Users\niki\Downloads\android-ndk-r10e\sources\cxx-stl\stlport\libs\armeabi-v7a -lstlport_shared
LIBS += -LC:\Temp\cryptopp\cryptopp-5.6.2-android-14\cryptopp-android-14\lib1 -lcryptopp
DISTFILES += \
../../../../Temp/cryptopp/cryptopp-5.6.2-android-14/cryptopp-android-14/lib1/libcryptopp.so
当我启动程序并按下 pushButton2 时,会出现登录对话框。当我在其中输入内容并按下登录对话框的按钮时,程序就死了。如果我在 .pro 文件中评论 cryptopp 行,程序将正常运行。如果我将 lineEdit 留空并按下 logindialog 的 passwordButton,它会再次询问我有关密码的信息,我给出空白,但又死了 - 看到第二个日志出现(注意两个日志中的 P1、P2、P3...)。我从 this 中获取了 openssl链接和 criptopp 来自 this .我认为问题出在 cryptopp 的某个地方。如何增加 qt android 的堆栈和堆大小?我不认为这是问题所在,并且已经阅读了一些有关“堆栈跟踪调试”的内容,但不知道该怎么做。没关系,在这种情况下可能是什么问题?
修改后:
我已经在我的 android 4.1.2 设备 LG optimus L1 e410 上对其进行了测试。无论我是否使用 android 23/14/18/16 在 AVD 上测试它 -> 它都失败了。如果 cryptopp 被评论一切正常。 log2编译输出与第一个相同,只是时间不同。
第 2 版之后:
pushButton 使用 cryptopp 的应用程序日志:
I/Adreno200-EGL( 6066): Reconstruct Branch: NOTHING
W/IInputConnectionWrapper( 6066): showStatusIcon on inactive InputConnection
F/libc ( 6066): Fatal signal 11 (SIGSEGV) at 0x54ff002e (code=1), thread 6156 (le.testAndroid4)
I/DEBUG ( 147): pid: 6066, tid: 6156, name: le.testAndroid4 >>> org.qtproject.example.testAndroid4 <<<
I/ActivityManager( 457): Process org.qtproject.example.testAndroid4 (pid 6066) has died.
"org.qtproject.example.testAndroid4" died.
请参阅 mainwindow.cpp 中的 pushButton 和 mainwindow.h 中的注释内容(它们实际上没有注释)。
最佳答案
您正在手动加载 libSTLport_shared.so
,我想这是因为 libcryptopp.so
需要它。
默认情况下,Qt 在编译和部署时使用 STL 库(在我的例子中为 libgnuSTL_shared.so
,您可以在编译后在 android-build\libs\armeabi-v7a 文件夹中检查它)。如果您的加密库使用不同的库(显然是 libSTLport_shared.so
),请像您一样从 .pro 文件手动加载它(ANDROID_EXTRA_LIBS +=
, LIB + =
) 将使 libcryptopp.so
可加载,但是每当您传递 STL 对象 (std::string
例如)从您的代码到加密函数。
两个环境(您的代码和加密环境)没有使用相同的 STL 实现,因此它们无法安全地相互发送任何 STL 对象而不会出现严重的潜在段错误(因为当它实际上是用另一个创建的:对象很可能具有不同的属性....这就像在两种完全不同的类型之间强制转换)。
你可以这样验证:
void MainWindow::on_pushButton_clicked()
{
byte ivec[16];
byte salt[32];
qDebug() << "Calling OS_GenerateRandomBlock";
CryptoPP::OS_GenerateRandomBlock(false, salt, sizeof(salt));
qDebug() << "Calling OS_GenerateRandomBlock";
CryptoPP::OS_GenerateRandomBlock(false, ivec, sizeof(ivec));
std::string v;
qDebug() << "Passing std::string to CryptoPP::StringSink";
CryptoPP::StringSink* sink = new CryptoPP::StringSink(v);
qDebug() << "Creating HexEncoder";
CryptoPP::HexEncoder hex( sink );
hex.Put(salt, sizeof(salt));
hex.MessageEnd();
QMessageBox::about(this,tr("Test1"),tr(v.c_str()));
QMessageBox::about(this,tr("Test1"),tr("XXX"));
}
请确认,但我很确定您会看到“将 std::string 传递给 CryptoPP::StringSink”而不是“创建 HexEncoder”。
您应该重新编译 libcryptopp.so
以使其使用与您的主程序相同的 STL 实现(并且希望该库能够与该 STL 实现一起工作)。
关于c++ - Cryptopp 致命信号 11,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34048195/
我正在尝试使用 cryptopp,以下代码会导致 stringsource 函数发生访问冲突。这可能是什么原因?我以前成功运行过类似的代码,几乎没有什么区别。 AesHelper.cpp #inclu
我试图在 Arch Linux (3.12.9) 上通过 cabal 安装 happstack-server-tls 包,但出现了这个错误: Resolving dependencies... Con
我在 IOS 中成功编译并执行了 Cryptopp,但我真的很难在 Android 中使用它。 在这里,我使用的是 Cryptopp 5.6.3、NDK r10e 和 android studio 1
我有一个在 CBC 模式下使用 AES 算法的加密文件。我有数据库中的 key 。我正在尝试使用 cryptopp 5.6.2 库编译以下代码。它在没有 -Wall 标志的情况下编译,但是当我在下面启
这是 log1 应用程序输出: : ... 25 more W/System.err( 1500): java.lang.ClassNotFoundException: android.g
我正在玩 cryptopp,但在 Base64 编码/解码方面遇到了问题。 在下面的代码中,假设 sig 的值应该等于 tsig,但是它们在最后一个字符上是不同的(sig 比 >tsig 一个符号)。
我是第一次玩 Cryptopp,我找到了一个编码为十六进制的示例……一切都很好。现在我想将生成的 std::string 解码为原始字符串,但我得到的只是空字符串。 #include "stdafx.
我正在尝试运行一个使用 AES 加密和解密的程序。 (来自 http://www.codeproject.com/KB/security/AESProductKey.aspx) // From aes
我正在尝试用 C++ 中的 RSA 加密一些文本, 加密时我正在生成 n, e, d但是在尝试解密时,私钥初始值设定项说 key 无效... 所以我构建了一个生成 key 的代码,然后尝试在此之后立即
我正在尝试加密已解析为字符串的字节数组。这似乎适用于所有情况,但字节数组包含 0x00 的情况除外。 int main() { byte cipherTextWithZeroByte[32]
谁能分享一个有效的 RabinMillerTest() 示例?遗憾的是,我的 googlefu 不见了。 这是我的测试代码: #include "integer.h" #include "nbtheo
Crypto++ 库通过针对 cryptlib.lib 和 cryptopp.lib 进行编译来支持后期绑定(bind)。这需要使用 cryptopp.dll。当尝试通过 /DELAYLOAD:cry
我有要解密的流。我将它分成 block 并将每个 block 传递给下面的方法。我需要解密的数据是按 16 字节的 block 加密的,如果最后一个 block 小于 16,那么其余所有字节都用填充填
我在 Windows 中编译 cryptopp 项目时遇到以下错误。 C:\Users\Sajith\AppData\Local\Temp\ccxq8O8x.o:aescbc.cpp:(.text$_
我发现在 RHEL7 和 Debian9 上使用 cryptopp 生成 SHA3 哈希的行为存在非常奇怪的差异。如果我改用 SHA1 或 MD5 哈希,则两个平台上的输出是相同的。我已将其缩减为以下
如何将 cryptopp::integer 转换为 QString? 如果这很重要,我会在 Mac OS 上工作。我完全不知道该怎么做,只是尝试使用 QCA,但它还不够好! 最佳答案 How to c
我正在尝试使用 Crypto++ 在编译时散列一些字符串(不需要检索它们)库和一个 constexpr 函数。这是我到目前为止的代码: constexpr const char* operator "
我的程序可以加密文本并将其保存在文件中,并在从文件中获取密文后解密。 但我一直收到这个错误 terminate called after throwing an instance of 'Crypto
这个问题在这里已经有了答案: How to convert CryptoPP::Integer to char* (4 个答案) 关闭 6 年前。 我找不到将 CryptoPP::Integer(从
我对 Crypto++ 库没有任何经验。在我的项目中,我需要将 Integer 类型转换为 int。这就是我正在尝试的: int low_bound1=8; int low_bound2=9; Int
我是一名优秀的程序员,十分优秀!