Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android中实现活动如何在jar中使用方法_Android_Api_Jar - Fatal编程技术网

在android中实现活动如何在jar中使用方法

在android中实现活动如何在jar中使用方法,android,api,jar,Android,Api,Jar,我正在创建自己的框架api(电话服务相关api)我正在创建一个库应用程序这个库应用程序来创建myjar.jar我正在开发另一个应用程序我正在添加资产文件夹这个myjar.jar并配置这个jar添加buildpath 在导入包时进行编码 此应用程序在实际设备中运行: MacTesting mp = new MacTesting(); mp.getMacAddress(); Log.v("1111","this is mac add"+ mp.getMacAddress()); 结果为空 publ

我正在创建自己的框架api(电话服务相关api)我正在创建一个库应用程序这个库应用程序来创建myjar.jar我正在开发另一个应用程序我正在添加资产文件夹这个myjar.jar并配置这个jar添加buildpath 在导入包时进行编码

此应用程序在实际设备中运行:

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);  
    }
}
看到这个截图了吗

如何解决这个问题

有一些问题:

  • MacIdTesting
    是一项活动,但您可以将其用于
    AndroidMac
    类,它本身就是一项活动。因此,
    MacIdTesting
    的生命周期方法将不会被调用。例如,您可以
    AndroidMac
    let extend
    MacIdTesting
    。然后可以调用
    getMacAddress()

  • MacIdTesting
    中的代码有错误:您正在将MAC地址分配给某个局部变量,并且对象中的字段从未设置

  • 在编写库之前,我建议阅读更多关于android生命周期的信息,可能还有关于Java的信息


您的类是一个活动,有onCreate方法,但没有构造函数

我将onCreate方法更改为类似的构造函数(并删除
扩展活动
):

从这样的活动中调用它:

MacTesting mp = new MacTesting(this);
另外,我会保留
私有
成员,而不是
公共
私有字符串mmacadress
)。

添加

this.mMacAddress = MACAddress;

作为MacTesting的onCreate()方法的最后一行。

它看起来更像是MacTesting中的问题,而不是包含Jar文件。什么是
null
mp
mp.getMacAddress()
?mp.getMacAddress()为空我已导入jar文件此方法为查看此库jar文件我正在更新上面的屏幕截图链接问题请发布getMacAddress()的代码查看上面的屏幕截图如何创建jar文件此jar如何使用其他类请给我建议
this.mMacAddress = MACAddress;