0

連絡先リストを読み取る iPhone 用の拡張機能 (ANE) をコーディングしています。.ane を Flash Builder プロジェクトに追加してコンパイルすると、エラーが発生します。Objective-c コードを *.a lib に問題なくコンパイルしました。エラーなしで .ane をコンパイルしました。

これは、メインの Flex プロジェクトに .ane を追加したときのエラーです。

Error occurred while packaging the application:

ld: absolute addressing (perhaps -mdynamic-no-pic) used in _getContatti from
/var/folders/j9/j9OzOTqhGJGpr2m87bnYEU+++TQ/-Tmp-/888e0e80-9ef5-4d2a-9e34-
c01545b25bfc/mylib.library.com.a(ExtensionMyLibIOSNative.o) 
not allowed in slidable image. Use '-read_only_relocs suppress' to enable text 
relocs
Compilation failed while executing : ld64

Xcodeでは、ビルド設定で「共有ライブラリとのリンクを有効にする」を「いいえ」に設定しています。これは、エラーの原因となった Objective-c コードです。

FREObject getContatti(FREContext ctx, void* funcData, uint32_t argc, FREObject argv[]) {

FREObject nome_visualizzato;
FREObject nome_visualizzatoPrimario;
FREObject nome_visualizzatoAlternativo;

ABAddressBookRef addressBook = ABAddressBookCreate( );
CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople( addressBook );
CFIndex nPeople = ABAddressBookGetPersonCount( addressBook );

FREObject arrayContatti;
FRENewObject((const uint8_t*)"Vector.<extension.MyLibrary.entity.Contatto>", 0, NULL, &arrayContatti, NULL);
FRESetArrayLength(arrayContatti, nPeople);


for ( int i = 0; i < nPeople; i++ )
{
    ABRecordRef ref = CFArrayGetValueAtIndex( allPeople, i );
    CFStringRef first = ABRecordCopyValue(ref, kABPersonFirstNameProperty);
    CFStringRef last = ABRecordCopyValue(ref, kABPersonLastNameProperty);
    CFStringRef company = ABRecordCopyValue(ref, kABPersonOrganizationProperty);
    -- DO SOMETHING --
}
    return result;
}

行をコメント\削除すると機能します:

CFStringRef first = ABRecordCopyValue(ref, kABPersonFirstNameProperty);
CFStringRef last = ABRecordCopyValue(ref, kABPersonLastNameProperty);
CFStringRef company = ABRecordCopyValue(ref, kABPersonOrganizationProperty);
4

1 に答える 1

0
  1. AddressBook フレームワーク (および、AddressBook のビューを使用している場合は AddressBookUI) がプロジェクトの「ライブラリとバイナリをリンク」に含まれているかどうかを確認します (ここで見つけることができます: http://wordpress.rcntech.com/wp-content /uploads/2011/05/Xcode4_Adding_Existing_Framework3.png ) 「共有ライブラリとのリンクを有効にする」を「はい」に設定してみてください (「いいえ」に設定されている場合)。すでに)

または、AddressBook にアクセスしようとしているので、次の拡張機能を確認できます: https://github.com/memeller/ContactEditor

于 2012-05-23T10:45:20.290 に答える