Privacy policyContactsAbout siteOpinionsGitHubDonate
© EVILEG 2015-2018
Recommend hosting
Jan. 21, 2019, 4:28 p.m.

Добрый день. Почему работая на С++, нельзя полноценно использовать dll , написанных на C#, java? И почему используя другие языки, можно использовать dll , написанных на C++?

Dec. 27, 2018, 6:53 a.m.


Memory leaks, garbage collection, Java

What is memory Leaks in Android development ?

The application creates objects, they lie in memory and can not clean out after the completion of its work.

Why is this happening ?

Java has its own means of clearing memory from unused items. This is garbage collection .

The garbage collector marks all objects that can be deleted if they are not referenced. Memory leak - this is just a lost reference, which shows that the object can not be deleted.

The complexity of this bug is that until a certain time it is not visible and it can not interfere. There's a good quote from Benjamin Franklin: “A small leak will sink a great ship." Memory leaks take the RAM of the application. The amount of raw memory will grow and may one day cause your app to slow down and crash . This will lead to user dissatisfaction and most likely the app will be removed...

Dec. 12, 2018, 4:28 p.m.

Как выяснилось в этом обсуждении:

Отправка Email из Android в Qt

для отправки Email в Android необходимо делать Java-метод, который и будет отправлять email. И этот Java-метод надо дергать из C++ окружения.

Начал я его делать (за основу можно взять пример взаимодействия Java<->C++ товарища EXL

В файле добавил вот такой метод sendMail(), (Вариант 1):

public class JniEventActivity extends {


    public static void sendMail(String to, String subj, String text) {
        Log.w(TAG, "Java msg: Send mail. To:"+to+" Subj:"+subj+" Text:"+text);

        final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);


        // Кому
            new String[] { to }); // Возможна отправка несколькми адресатам?

        // Тема
        emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subj);

        // Текст
        emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, text);

        startActivity(Intent.createChooser(emailIntent, "Отправка письма..."));

Однако этот код не компилируется и выдается ошибка: error: non-static method startActivity(Intent) cannot be referenced from a static context
        startActivity(Intent.createChooser(emailIntent, "Отправка письма..."));
:compileDebugJavaWithJavac FAILED

То есть метод startActivity() для текущей активности не может вызваться из статического метода, потому что startActivity() нестатический.

Тогда я попробовал сделать так (Вариант 2):

        Activity activity;
        activity.startActivity(Intent.createChooser(emailIntent, "Отправка письма..."));

Но так тоже не компилируется, ошибка: error: variable activity might not have been initialized
        activity.startActivity(Intent.createChooser(emailIntent, "Отправка письма..."));
Note: Some input files use or override a deprecated API.

Моих знаний Java в Android не хватает на то чтоб понять как правильно инициализировать Activity. Поэтому, потыкавшись, решил попробовать третий вариант.

В прототипе метода sendMail() я убрал static, вернул строку вызова отправки Email в состояние по Варианту 1, и компиляция заработала. Но при попытке отправить email происходит сегфолт вот с такими ошибками:

F art     : art/runtime/] JNI DETECTED ERROR IN APPLICATION: GetMethodID received NULL jclass
F art     : art/runtime/]     in call to GetMethodID
F art     : art/runtime/]     from void
F art     : art/runtime/] "qtMainLoopThread" prio=5 tid=11 Runnable
F art     : art/runtime/]   | group="main" sCount=0 dsCount=0 obj=0x134499a0 self=0xb7fcb090
F art     : art/runtime/]   | sysTid=20465 nice=0 cgrp=top_visible sched=0/0 handle=0xb2d71930
F art     : art/runtime/]   | state=R schedstat=( 1185709460 105310192 298 ) utm=94 stm=24 core=1 HZ=100
F art     : art/runtime/]   | stack=0xb2c6f000-0xb2c71000 stackSize=1038KB
F art     : art/runtime/]   | held mutexes= "mutator lock"(shared held)
F art     : art/runtime/]   native: #00 pc 00371069  /system/lib/ (_ZN3art15DumpNativeStackERNSt3__113basic_ostreamIcNS0_11char_traitsIcEEEEiPKcPNS_9ArtMethodEPv+160)
F art     : art/runtime/]   native: #01 pc 003508c3  /system/lib/ (_ZNK3art6Thread4DumpERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEE+150)
F art     : art/runtime/]   native: #02 pc 0025a8ed  /system/lib/ (_ZN3art9JavaVMExt8JniAbortEPKcS2_+740)
F art     : art/runtime/]   native: #03 pc 0025afc5  /system/lib/ (_ZN3art9JavaVMExt9JniAbortVEPKcS2_St9__va_list+64)
F art     : art/runtime/]   native: #04 pc 000fda29  /system/lib/ (_ZN3art11ScopedCheck6AbortFEPKcz+32)
F art     : art/runtime/]   native: #05 pc 001021ef  /system/lib/ (_ZN3art11ScopedCheck5CheckERNS_18ScopedObjectAccessEbPKcPNS_12JniValueTypeE.constprop.95+2690)
F art     : art/runtime/]   native: #06 pc 00113785  /system/lib/ (_ZN3art8CheckJNI11GetMethodIDEP7_JNIEnvP7_jclassPKcS6_+396)
F art     : art/runtime/]   native: #07 pc 0014e6d9  /data/app/ru.farwater.gnss.farwaterma-2/lib/arm/ (???)
F art     : art/runtime/]   native: #08 pc 00150401  /data/app/ru.farwater.gnss.farwaterma-2/lib/arm/ (???)
F art     : art/runtime/]   native: #09 pc 001505a7  /data/app/ru.farwater.gnss.farwaterma-2/lib/arm/ (_ZNK17QJNIObjectPrivate11callMethodVIvEET_PKcS3_St9__va_list+54)
F art     : art/runtime/]   native: #10 pc 0000b6e1  /data/app/ru.farwater.gnss.farwaterma-2/lib/arm/ (_ZNK17QAndroidJniObject10callMethodIvEET_PKcS3_z+24)
F art     : art/runtime/]   at method)
F art     : art/runtime/]   at$
F art     : art/runtime/]   at$
F art     : art/runtime/]   at
F art     : art/runtime/]

Вот, дальше уже не знаю что делать. Вопрос: как исправить код, чтоб отправка email заработала?


В C++ коде вызов данного метода в статическом исполнении происходит так:


А нестатический вариант вызывается так:

    QAndroidJniObject androidObj;
Nov. 28, 2018, 6:58 p.m.


Java, synchronization, threads, processes

I propose to consider several ways to synchronize threads and processes that are most commonly used in Java. They differ in implementation and use cases. We will consider all methods on interesting examples.

Critical section

This method is suitable for you if:

  • parallel threads work with a shared resource;
  • requires synchronization between threads, not processes;

This method of synchronization is called resource synchronization ("open – close" synchronization). The idea of this method is that each object in Java has an associated monitor . A monitor is a kind of tool to control access to an object.

Sept. 26, 2018, 11:53 a.m.


Java, пул, шаблоны проектирования

Example of the design pattern An object pool in the Java programming language.

Sept. 24, 2018, 2:34 p.m.


шаблоны проектирования, factory, method, Java, JAVA

In class-based programming, the factory method pattern is a creational pattern that uses factory methods to deal with the problem of creating objects without having to specify the exact class of the object that will be created. This is done by creating objects by calling a factory method—either specified in an interface and implemented by child classes, or implemented in a base class and optionally overridden by derived classes—rather than by calling a constructor.

Sept. 17, 2018, 1:47 p.m.


abstract, Java

Abstract Factory classes are often implemented with Factory Methods, but they can also be implemented using Prototype. Abstract Factory might store a set of Prototypes from which to clone and return product objects.

  • Factory Method: creation through inheritance.
  • Prototype: creation through delegation.
  • Virtual constructor: defer choice of object to create until run-time.
June 12, 2018, 6:34 a.m.


алгоритм ли, волновая трассировка, волновой алгоритм, Java

Sometimes there is a problem to find the minimum path from point A to point B . The map can have barriers and be like a labyrinth. Similar tasks can be done in game development, PCB design and GPS development, etc.

There is a large set of algorithms for finding the minimum path. The most simple and effective is the Wave trace Algorithm (Lee algorithm). Which is based on the methods of breadth-first search.

This algorithm is not difficult to understand. It will be understandable even for a beginner in programming.

April 21, 2019, 9:40 a.m.
Моисей Бушуев

Qt - Test 001. Signals and slots

  • Result:0points,
  • Rating points-10
April 17, 2019, 7:40 p.m.
Anton Ablin

Qt - Test 001. Signals and slots

  • Result:73points,
  • Rating points1
April 17, 2019, 6:16 p.m.

Qt - Test 001. Signals and slots

  • Result:100points,
  • Rating points10
Last comments
April 21, 2019, 4:22 p.m.
Евгений Легоцкой

Через метод setIcon table.horizontalHeaderItem(0).setIcon("qrc://path/to/icon.png")
April 21, 2019, 3:48 p.m.
Евгений Легоцкой

Добрый день! Спасибо за комментарий. Там действительно лучше будет сделать с инициализацией по умолчанию.
April 18, 2019, 3:37 p.m.

А как иконку в хедер задать?
April 18, 2019, 2:15 a.m.

доброго времени,большое спасибо за пример для начинающего)при адаптации к своему проекту столкнулся с таким ньансом:в vepolyline.h в 47 строке нужна инициализация по умолчанию: int m_pointF...
April 11, 2019, 12:49 p.m.

Спасибо за ответ) У меня компоновщик на нее ругался просто. Оказалось, просто забыл Q_OBJECT в начале класса указать.
Now discuss on the forum
April 24, 2019, 11:22 a.m.
Ruslan Polupan

Согласен. но ситуация не поменялась. Такое чуство что данные не записываются в модель.
April 24, 2019, 6:20 a.m.
Ruslan Polupan

я так понимаю надо инфорация об устройствах.Я бы пробовал так rust@suse:~> lsblk -PNAME="sda" MAJ:MIN="8:0" RM="0" SIZE="111,8G" RO="0" TYPE="disk" MOUNTPOINT=""NAME="sda1" MAJ:MIN="8...
April 21, 2019, 4:16 p.m.
Евгений Легоцкой

Приветствую Нужно сохранять где-то выбранное значение, а потом восстанавливать его. Или использовать QSettings или добавить метод open(), в который передавать начальные значения для того...
April 19, 2019, 9:55 a.m.

мені важко це зараз навіть перевірити, тому що знайшов коміт, це ще було в 2016 році, і цей код не буде працювати коректно зараз, єдине скажу що це були QThread
Join us in social networks

For registered users on the site there is a minimum amount of advertising