tre*_*imy 11 android android-intent library-project android-activity
经过长时间的搜索,我找不到任何合适的解决方案.我有一个Android-Library项目,几乎包含了应用程序的所有代码.从库项目中的主要活动我开始一个Intent到显式Activity A.在我使用库Project的派生Project中,我扩展了这个Activity A并添加了一些新代码.问题是活动A的超类将响应而不是派生类.
在使用库项目的新项目的清单中,我已使用新包声明了新的Activity.
这是来自图书馆计划的Intent调用:
Intent i = new Intent(getApplicationContext(), AndroidActivity.class);
startActivity(i);
Run Code Online (Sandbox Code Playgroud)
以下是派生的AndroidActivity类:
public class AndroidActivity extends de.app.library.activities.AndroidActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
Run Code Online (Sandbox Code Playgroud)
我无法进入onCreate方法
图书馆计划的清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="de.app.library"
android:versionName="1.0"
android:versionCode="1">
<uses-sdk android:minSdkVersion="4" />
<application
android:icon="@drawable/icon"
android:label="@string/app_name">
<activity android:name=".activities.MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".activities.AndroidActivity" android:label="@string/act_android" />
</application>
Run Code Online (Sandbox Code Playgroud)
这里是新项目的清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="de.app.free"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="4" />
<application
android:icon="@drawable/icon"
android:label="@string/app_name">
<activity android:name="de.app.library.activities.MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".activities.LernenActivity" android:label="@string/act_lernen" />
Run Code Online (Sandbox Code Playgroud)
所以我有:
de.app.library.activities.AndroidActivity and
de.app.free.activities.AndroidActivity
Run Code Online (Sandbox Code Playgroud)
我不想对库项目进行那么多更改,因为第三个项目应该使用现有代码和未触及的AndroidActivity
ALl其他的东西对我来说很好.例如,从新项目中使用更改的布局.
我该如何处理这个问题?也许从我声明的新项目中更改Manifest,应该调用新活动而不是超类?
提前致谢!
在您的新项目中,您可以使用不同的名称来代替 AndroidActivity。如果您不想这样做,清单文件中第二个 AndroidActivity 的完全限定名称应该可以解决您的问题。您可能在某个地方稍微搞乱了软件包。
活动 android:name="de.app.library.activities.AndroidActivity"
应该
活动 android:name="de.app.free.activities.AndroidActivity"
我的意思是,AndroidActivity。在某种程度上,您从错误的包中选择了错误的活动类。
| 归档时间: |
|
| 查看次数: |
8639 次 |
| 最近记录: |