【发布时间】:2019-07-14 13:44:35
【问题描述】:
我正在升级我的旧项目以使用最新的 android api、gradle build 等...我的 Android Manifest 遇到了这个问题。
我有一些活动设置如下:
<activity
android:name="com.company.name.ui.ColorPickerActivity"
android:label="@string/title_activity_add_photo_library"
android:parentActivityName="com.compant.name.ui.CaptureMenuFragment"
android:screenOrientation="portrait"
android:theme="@style/FullscreenTheme">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.company.name.ui.CaptureMenuFragment" />
</activity>
我收到一条错误消息:
Fragment is not assignable to 'android.app.Activity'
参考上面的 android:parentActivityName。应该是什么?它在以前的目标 api 设置中工作。
我查看了一些 SO 帖子,他们提到将 Fragment 更改为 FragmentActivity 但这会导致其他构建问题,例如我无法在我的意图实例中使用“getActivity()”方法。
例如:Intent intent = new Intent(getActivity(), SearchProductActivity.class);
有没有更好的解决方案?
谢谢!
编辑:
即使关于 BindingFragmentActivity,在我的清单中它说:
com.company.name.ui.ColorActivity' is not assignable to 'android.app.Activity'
在我升级到 API 28 和 Android X 之后。我的清单中的这段代码有什么问题:
<activity
android:name="com.company.name.ui.ColorActivity"
android:label="@string/title_activity_color"
android:parentActivityName="com.company.name.ui.ColorsActivity"
android:screenOrientation="portrait"
android:theme="@style/Theme.AppCompat.NoActionBar">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.company.name.ui.ColorsActivity" />
</activity>
【问题讨论】:
-
如果您没有
Up button in the action bar功能,请尝试删除android:parentActivityName和元数据。阅读它here -
@nimi0112 我确实删除了 parentActivityName 和元数据,但它仍然抱怨
-
哦,对于上面编辑中的活动,它扩展了:BindingFragmentActivity。 Android X/Api 28 的等价物是什么。我认为这就是问题所在。
标签: android android-fragments android-manifest androidx