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

+1 رأی
میانگین بازدید روزانه 0.16449 بازدید

چطور می توان 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();
	}

	

}

 

 

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

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

1 جواب

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

سوال های مشابه

0 رأی
1 جواب میانگین بازدید روزانه 0.21614 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 8.1322,583 بازدید
+2 رأی
2 جواب میانگین بازدید روزانه 0.28779 بازدید
0 رأی
0 جواب میانگین بازدید روزانه 0.27802 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.09267 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.21628 بازدید
0 رأی
2 جواب میانگین بازدید روزانه 0.19582 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.521,597 بازدید
0 رأی
2 جواب میانگین بازدید روزانه 0.14461 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.14291 بازدید
کانال تلگرام جواب یاب
...