2011-04-27 8 views
3

我正在創建自己的框架API(電話服務相關API)我正在創建一個庫應用程序這個庫應用程序來創建myjar.jar我正在開發另一個應用程序,只是我添加資產文件夾此myjar.jar和配置該罐子中編碼導入軟件包實現活動如何在Android中使用罐子中的方法

本申請運行成真正的設備添加構建路徑 :

MacTesting mp = new MacTesting(); 
mp.getMacAddress(); 
Log.v("1111","this is mac add"+ mp.getMacAddress()); 

結果爲空

public class MacIdTesting extends Activity implements Parcelable 
{ 
    public static final String KEY_WIFI_MAC_ADDRESS = null; 

    public static final String READ_PHONE_STATE = null; 

    /** Called when the activity is first created. */ 
     public String mMacAddress; 
     public String phonenumber; 
     void setMacAddress(String macAddress) { 
      this.mMacAddress = macAddress; 
     } 

     public String getMacAddress() { 
      return mMacAddress; 
     } 
     public String getLine1Number() 
     { 
     ContextWrapper mContext = null; 
     mContext.enforceCallingOrSelfPermission(READ_PHONE_STATE, "Requires READ_PHONE_STATE"); 
      MacIdTesting mPhone = null; 
     return mPhone.getLine1Number(); 
     } 

     public void onCreate(Bundle savedInstanceState) 
     { 
     super.onCreate(savedInstanceState); 

     WifiManager manager = (WifiManager) getSystemService(Context.WIFI_SERVICE); 
     WifiInfo wifiInfo = manager.getConnectionInfo(); 
     String MACAddress = wifiInfo.getMacAddress(); 
     System.out.println("macsddress "+MACAddress); 
     } 

    @Override 
    public int describeContents() 
    { 
     // TODO Auto-generated method stub 
     return 0; 


    } 
    @Override 
    public void writeToParcel(Parcel dest, int flags) 
    { 
     // TODO Auto-generated method stub 
     dest.writeString(mMacAddress); 
    } 
} 

看到這張截圖

如何才能解決這個問題

+1

它看起來更像是你在MacTesting中有一個問題,而不是包含你的Jar文件。 – Haphazard 2011-04-27 15:29:26

+0

什麼是'null'? 'mp'或'mp.getMacAddress()'? – 2011-04-27 15:50:11

+0

mp.getMacAddress()爲空已經我是導入的jar文件這種方法是看到這個庫的jar文件 – Narasimha 2011-04-27 15:55:31

回答

1

你的課是一個活動,並有onCreate方法,但不是一個構造函數。

我改變onCreate方法是這樣的一個構造函數(並刪除extends activity):

public MacIdTesting(Context ctx) 
     { 
     WifiManager manager = (WifiManager) ctx.getSystemService(Context.WIFI_SERVICE); 
     WifiInfo wifiInfo = manager.getConnectionInfo(); 
     mMacAddress = wifiInfo.getMacAddress(); 
     } 

而從這樣的活動稱之爲:

MacTesting mp = new MacTesting(this); 

而且,我會繼續private成員而不是publicprivate String mMacAddress)。

+0

好Binyamin Sharet thanx分享知識 – Narasimha 2012-02-08 05:03:40

0

有一些問題:

  • MacIdTesting是一種活動,但你使用它的AndroidMac類,這是一個活動本身。因此MacIdTesting的生命週期方法將不會被調用。你可以例如AndroidMac讓我們延長MacIdTesting。然後你可以撥打getMacAddress()

  • MacIdTesting中的代碼有問題:您正在將MAC地址分配給某個局部變量,並且對象中的字段永遠不會被設置。

  • 在編寫庫之前,我建議閱讀更多關於android生命週期和可能關於Java的知識。

+0

看到上面截圖如何創建jar文件這個jar如何使用其他類請給我建議 – Narasimha 2011-05-09 15:14:35

0

添加

this.mMacAddress = MACAddress; 

作爲最後一行MacTesting的onCreate()方法。

相關問題