Одной из причин этого может быть забывание добавления android.permission.INTERNET
разрешений в AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET" />
Глобальная переменная должна быть объявлена extern
в файле заголовка, включенном обоими исходными файлами, а затем определена только в одном из этих исходных файлов:
common.h
blockquote>extern int global;
source1.cpp
blockquote>#include "common.h" int global; int function(); int main() { global=42; function(); return 0; }
source2.cpp
blockquote>#include "common.h" int function() { if(global==42) return 42; return 0; }
Вы добавляете «файл заголовка», который описывает интерфейс для модуля source1.cpp:
source1.h
#ifndef SOURCE1_H_
#define SOURCE1_H_
extern int global;
#endif
source2.h
#ifndef SOURCE2_H_
#define SOURCE2_H_
int function();
#endif
и добавьте оператор #include в каждый файл, который использует эту переменную, и (важный), который определяет переменную.
source1.cpp
#include "source1.h"
#include "source2.h"
int global;
int main()
{
global=42;
function();
return 0;
}
source2.cpp
#include "source1.h"
#include "source2.h"
int function()
{
if(global==42)
return 42;
return 0;
}
Хотя это необязательно, я предлагаю имя source1.h для файла показать, что он описывает публичный интерфейс к модулю source1.cpp. Точно так же source2.h описывает, что доступно в source2.cpp.
В одном файле вы объявляете его как в source1.cpp, во втором вы объявляете его как
extern int global;
. Конечно, вы действительно не хотите этого делать и, вероятно, должны публиковать вопрос о том, чего вы пытаетесь достичь, поэтому люди здесь могут дать вам другие способы его достижения.