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