2012-02-10 5 views
2

モバイルAIRアプリケーション用のネイティブAndroid拡張機能を作成しています。私はデバイスIDを取得しようとしていますが、結果は常にnullとして戻ってきます。私は何が間違っているのか分かりません。ここにネイティブ拡張コード(java)があります:AIRネイティブAndroid拡張 - 常にヌルのデバイスIDを返します

import android.app.Activity; 
import android.provider.Settings; 
import android.provider.Settings.Secure; 

import android.content.Context; 
import android.content.SharedPreferences; 
import android.telephony.TelephonyManager; 

import com.adobe.fre.FREContext; 
import com.adobe.fre.FREFunction; 
import com.adobe.fre.FREObject; 
import com.adobe.fre.FREWrongThreadException; 

public class DeviceIdGetter extends Activity implements FREFunction { 
    @Override 
    public FREObject call(FREContext context, FREObject[] passedArgs) { 
     FREObject result = null; 

     TelephonyManager tManager = (TelephonyManager)getBaseContext().getSystemService(Context.TELEPHONY_SERVICE); 

     try 
     { 
      result = FREObject.newObject(tManager.getDeviceId()); 
     } 
     catch (FREWrongThreadException fwte) 
     { 
      try 
      { 
       result = FREObject.newObject("error"); 
      } 
      catch (FREWrongThreadException fwte2) 
      { 
      } 
      fwte.printStackTrace(); 
     } 

     return result; 
    } 
} 
+1

これはエミュレータで実行していますか? –

+0

いいえ、私は自分のHTC Evoで走っています。 – Seth

+0

解決策を見つけたことはありますか? – brybam

答えて

1

あなたはsdk4.6を使用していますか?

FREObject.newObjectは、エラーno implementation found for native freobjectを返します。原因はコンテキストnullです。 FlashRuntimeExtensions.jarファイルをsdksフォルダからJavaプロジェクトにコピーしたと思います。

Adob​​e Flash Builder 4.x\sdks\4.xx\lib\android\FlashRuntimeExtensions.jarをjarパスに追加してみてください。

+0

4.6sdkを使用していますが、私があなたが述べたファイルを使用しています。ありがとうございます。 – Seth

+0

私は同じ正確な問題を抱えています。私が見つけたすべてのチュートリアルは数か月前にはうまくいきましたが、今は新しいSDKとすべての状況でnullエラーが発生しています。この答えが示唆するように、私は実際には常に外部のjarパスを使用していますが、まだnullエラーが発生しています。興味深いのは、私が文字通り、過去にこれをしたときから同じライブラリプロジェクトを使用していて、まだエラーが出ているということです。誰もこれまでどんなsoltionsも見つけましたか? – brybam

関連する問題