+1 امتیاز
قبل در برنامه نویسی توسط (193 امتیاز)
ویرایش شده قبل توسط

چطور می توان activity یک library را به manifest اپلیکیشن اصلی اضافه کرد؟

پکیج لایبرری :com.lib.activity

پکیج اپلیکیشن :com.app.myApp

من این دستور را به manifest لایبرری همچنین پروژه اصلی اضافه کردم

  <activity
            android:name="com.lib.activity.libActivity" 
            android:label="@string/title_activity_main"
           >
</activity>

ولی نمیتونه پیداش کنه

E/AndroidRuntime(31986): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.app.myAppt/com.lib.activity.libActivity}: java.lang.InstantiationException: can't instantiate class com.lib.activity.libActivity

حالت های مختلف را امتحان کردم مانند اینکه

* activity را فقط در manifest لایبرری اضافه کنم

* activity را فقط در manifest اپلیکیشن اصلی اضافه کنم

و ...

اما نشد

 

public abstract class libActivity extends Activity   {

	 Context context;
	 WebView webView;

	 String Password;
	 String MerchantID;
	 String PaymentPath;
	 
	@SuppressLint("SetJavaScriptEnabled")
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_web_payment);
		webView = (WebView) findViewById(R.id.webView);
		context = this;

		try {
			Bundle extras = getIntent().getExtras();
			if (extras != null) {
				MerchantID = extras.getString(MapperObject.MerchantID);
				Password = extras.getString(MapperObject.Password);
				PaymentPath = extras.getString(MapperObject.PaymentPath);				
			}
		} catch (Exception e) {
		}

		webView.getSettings().setJavaScriptEnabled(true);
		webView.getSettings().setBuiltInZoomControls(true);
		
		webView.loadUrl(PaymentPath);		
	}
}

 


توی لایبرری یک کلاس abstract  به اسم PrepareData  دارم که در متد  public void ShowLibActivity() طبق دستور زیر libActivity   را فراخوانی میکنم


Intent i = new Intent();
i.setClass(context, libActivity.class);
i.putExtra(MapperObject.PaymentPath, path);
i.putExtra(MapperObject.MerchantID, MerchantID);
i.putExtra(MapperObject.Password, Password);							
context.startActivity(i);

در پروژه ی اصلی یک کلاس ساختم که extend شده از کلاس  PrepareData

public class PreparDataClass extends PrepareData {
	Context context;

	public PreparDataClass(final Context context, String merchantID,
			String password,
			OnCompletedListener onCompletedListener) {
		super(context, merchantID, password, onCompletedListener);
 
		ShowLibActivity();
	}

	

}

 

 

قبل توسط (193 امتیاز)
درست شد !! :))
مشکلش این بود که  libActivity را  abstract   تعریف کرده بودم

ممنون بابت اینکه وقت گذاشتید
قبل توسط (1.1هزار امتیاز)
اگر محبت کنید راه حل مشکل رو در قالب جواب طرح کنید که در آینده شاید مشکل بقیه رو هم حل کنه ممنون می شم.

1 پاسخ

0 امتیاز
قبل توسط (193 امتیاز)
 
بهترین پاسخ
مشکلش این بود که  libActivity را  abstract   تعریف کرده بودم

سوالات مشابه

0 امتیاز
1 پاسخ 831 بازدید
0 امتیاز
2 پاسخ 936 بازدید
...