Я бы сделал это в C, используя struct
с членом union
:
typedef struct ast_function
{
ast_node* arguments;
symbol* sym;
} ast_function;
typedef struct ast_while
{
ast_node* condition;
ast_node* while_branch;
} ast_while;
typedef struct ast_assignment
{
symbol* sym;
ast_node* value;
} ast_assignment;
/* Etc. */
typedef struct ast_node {
int node_type;
/* See anonymous unions in any C reference */
union {
ast_function function_data;
ast_while while_data;
ast_assignment assignment_data;
/* Etc. */
};
}
Тогда вам вообще не нужны приведения:
[111 ] Если вы сделаете node_type
вместо int
вместо [116], компилятор сможет предупредить вас, если вы упустите возможность в своем выражении switch
.
Понятый это, добавило это под <activity>
тег действия:
<intent-filter>
<action android:name="android.intent.action.MAIN"></action>
</intent-filter>
Я не столкнулся с этим лично, но я действительно провел некоторое исследование и нашел следующее.
По-видимому независимо от того, что пытается вызвать Ваше приложение или если Ваше приложение имеет вызов, чтобы создать намерение и запустить действие некоторого намерения, UID не является тем же.
В ActivityManagerServer.java существуют ниже решения в нем.
int checkComponentPermission(String permission, int pid, int uid, int reqUid)
// If the target requires a specific UID, always fail for others.
if (reqUid >= 0 && uid != reqUid) {
return PackageManager.PERMISSION_DENIED;
}
Я собираюсь сделать некоторое тестирование на этом и видеть, могу ли я воспроизвести это в тестовом приложении и обеспечить какую-либо дополнительную обратную связь.
Удостоверьтесь, что Вы только пытаетесь вызвать публично выставленные операции через любые намерения.
Вместо того, чтобы возиться с методами кодирования и декодирования, мне легче указать кодировку при открытии файла. Модуль io
(добавлен в Python 2.6) предоставляет функцию io.open
, которая имеет параметр кодирования.
Используйте метод open из io Модуль
.
>>>import io
>>>f = io.open("test", mode="r", encoding="utf-8")
Затем после вызова функции read () f возвращается закодированный объект Unicode.
>>>f.read()
u'Capit\xe1l\n\n'
Обратите внимание, что в Python 3 функция io.open
является псевдонимом для встроенного -в открыть функцию
. Встроенная функция open поддерживает аргумент кодировки только в Python 3, но не в Python 2.
Изменить: ранее в этом ответе рекомендовался модуль кодеков . Модуль кодеков может вызывать проблемы при смешивании read ()
и readline ()
,
У меня произошло нечто подобное, когда я случайно продублировал тег активности для одного из видов деятельности в манифесте. В разделе приложения у меня было что-то вроде этого.
<activity android:name=".ConventionHome" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="ConventionHome"></activity>
Когда я удалил второй тег активности, все заработало нормально.