1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/openharmony-arkcompiler_ets_frontend

 / Детали:

[Ошибка]: при компиляции файла ets произошла ошибка в сегменте abc

Предстоит сделать
Владелец
Создано  
04.03.2025

Какую ошибку вы получили?

Ошибка сегмента при компиляции
ETS код:

loadLibrary("cloud_sync_ani");
namespace cloudSync{
    export class BusinessError<T = void> {
        code: number;
        data: T;
    }
    type AsyncCallback<T, E = void> = (err: BusinessError<E>, data: T) => void;
    export enum ErrorType {
        NO_ERROR = 0,
        NETWORK_UNAVAILABLE = 1,
        WIFI_UNAVAILABLE = 2,
        BATTERY_LEVEL_LOW = 3,
        BATTERY_LEVEL_WARNING = 4,
        CLOUD_STORAGE_FULL = 5,
        LOCAL_STORAGE_FULL = 6,
        DEVICE_TEMPERATURE_TOO_HIGH = 7,
    };
    export enum SyncState {
        UPLOADING = 0,
        UPLOAD_FAILED = 1,
        DOWNLOADING = 2,
        DOWNLOAD_FAILED = 3,
        COMPLETED = 4,
        STOPPED = 5,
    };
    export class SyncProgress {
        constructor(
            syncState: SyncState,
            errorType: ErrorType
        ) {
            this.syncState = syncState;
            this.errorType = errorType;
        }
        syncState: SyncState;
        errorType: ErrorType;
    }
    export type GallerySyncCallback = (pg: SyncProgress) => void;
    export class GallerySync {
        constructor() {
            this.GallerySyncConstructor();
        }
        on(evt: string, callback: GallerySyncCallback): void {
            this.GallerySyncOn(evt, callback);
        }
        off(evt: string, callback: GallerySyncCallback): void {
            this.GallerySyncOff(evt, callback);
        }
        off(evt: string): void {
            this.GallerySyncOff(evt);
        }
        start(): Promise<void> {
            return new Promise<void>((resolve, reject) => {
                let promise = taskpool.execute(GallerySync.StartInner);
                // promise.then<void>(() => {
                //     console.log("in then");
                // });
            });
        }
        // start(callback: AsyncCallback<void>): void {
        // }
        // stop(): Pormise<void> {
        // }
        // stop(callback: AsyncCallback<void>): void {
        // }
        static GallerySyncStartInner(): void {
            GallerySync.GallerySyncStart();
        }
        native GallerySyncConstructor(): void;
        native GallerySyncOn(evt: string, callback: GallerySyncCallback): void;
}
``````typescript
    native GallerySyncОтключить(evt: string, callback: GallerySyncCallback): void;
    native GallerySyncОтключить(evt: string): void;
    static native GallerySyncЗапустить(): void;
    static native GallerySyncОстановить(): void;
    static ЗапуститьВнутрине(): undefined {
        GallerySync.GallerySyncЗапустить();
        return undefined;
    }
};

export enum Состояние {
    ЗАПУЩЕНО = 0,
    ОКОНЧЕНО = 1,
    ПРОИСШЕДШАЯ_ОШИБКА = 2,
    ОСТАНОВЛЕНО = 3
};

enum ТипОшибкаЗагрузки {
    БЕЗ_ОШИБКИ = 0,
    НЕИЗВЕСТНАЯ_ОШИБКА = 1,
    СЕТЬ_НЕДОСТУПНА = 2,
    ЛОКАЛЬНЫЙ_ХРАНИЛИЩЕ_ПОЛНО = 3,
    КОНТЕНТ_НЕ_НАЙДЕН = 4,
    ЧАСТОЕ_ЗАПРОС_ПОЛЬЗОВАТЕЛЯ = 5,
};

export class ЗагрузкаПрогресс {
    constructor(
        taskId: number,
        состояние: Состояние,
        обработано: number,
        размер: number,
        uri: string,
        ошибка: ТипОшибкаЗагрузки
    ) {
        this.taskId = taskId;
        this.состояние = состояние;
        this.обработано = обработано;
        this.размер = размер;
        this.uri = uri;
        this.ошибка = ошибка;
    }

    taskId: number;
    состояние: Состояние;
    обработано: number;
    размер: number;
    uri: string;
    ошибка: ТипОшибкаЗагрузки;
};

export type ЗагрузкаКallback = (pg: ЗагрузкаПрогресс) => void;

export class Загрузка {
    constructor() {
        this.ЗагрузкаСonструктор();
    }

    native ЗагрузкаСonструктор(): void;
    native ЗагрузкаНачало(evt: string, callback: ЗагрузкаКallback): void;
    native ЗагрузкаОкончание(evt: string, callback: ЗагрузкаКallback): void;
    native ЗагрузкаОкончание(evt: string): void;
    native ЗагрузкаЗапуск(uri: string): void;
    native ЗагрузкаОстановка(uri: string): void;
};

function основной() {
    console.log("Основная функция");
};

Внесены изменения в согласии с правилами перевода и исправлены ошибки в пунктуации и пробелах.```rust
println!("ltlp ani main start");
let облачная_синхронизация = облачнаяСинхронизация::GallerySync::new();
облачная_синхронизация.GallerySyncНачало("progress", || {
console::println("callback. ==================>");
});
console::println("ltlp ani main end.");


### Ожидаемое поведение:
Компиляция проходит успешно.
```### Как воспроизвести этот缺陷
错误消息:
![描述图像](https://foruda.gitee.com/images/1741010098306926407/ad0bc235_13803668.png "屏幕截图")
  ### 额外信息
    ### 版本或分支信息
  - [x] master
 - [ ] 5.0-Beta1
 - [ ] Release 4.1
 - [ ] Release 4.0
 - [ ] Release 3.2

### Как воспроизвести этот дефект
Ошибка сообщения:
![Описание изображения](https://foruda.gitee.com/images/1741010098306926407/ad0bc235_13803668.png "Скриншот экрана")
  ### Дополнительная информация
    ### Информация о версиях или ветках
  - [x] master
 - [ ] 5.0-Beta1
 - [ ] Release 4.1
 - [ ] Release 4.0
 - [ ] Release 3.2

Комментарий (0)

GitLife Service Account Задача создана
GitLife Service Account добавлено
 
bug
label.
GitLife Service Account добавлено
 
waiting_for_assign
label.
Развернуть журнал операций

Вход Перед тем как оставить комментарий

Статус
Ответственный
Контрольная точка
Pull Requests
Связанные запросы на слияние могут быть закрыты после их объединения
Ветки
Дата начала   -   Крайний срок
-
Закрепить/Открепить
Приоритет
Участники(1)
1
https://api.gitlife.ru/oschina-mirror/openharmony-arkcompiler_ets_frontend.git
git@api.gitlife.ru:oschina-mirror/openharmony-arkcompiler_ets_frontend.git
oschina-mirror
openharmony-arkcompiler_ets_frontend
openharmony-arkcompiler_ets_frontend