Mic*_*ł K 8 android android-maps actionbarsherlock android-loadermanager
编辑:有关详细的操作方法,请查看我的答案.
我现在挣扎了两天,希望有人可以提供帮助.
我正在尝试将最新的ActionBarSherlock(4.0)与MapView一起使用.我知道片段存在问题,但我不需要它们.但我需要Loaders,看来,使用Loaders我也必须扩展FragmentActivity.没问题,我想,我们有来自Pete Doyle 的android-support-v4-googlemaps.正如许多SO线程和Google网上论坛所建议的,我使用android-support-v4-googlemaps JAR(实际上是android-support-v13-r7-googlemaps.jar)而不是android-support-v4.jar来构建ABS.然后我用它作为我项目的库.
现在,我希望以这种方式进行活动:
public class BananoutMapActivity extends SherlockFragmentActivity implements LoaderCallbacks<ArrayList<EventItem>>{
问题:
它编译,但抛出运行时错误: E/AndroidRuntime(29159): java.lang.NoClassDefFoundError: ndl.klimczak.bananout.BananoutMapActivity
我三重检查的事情:
<uses-library android:name="com.google.android.maps" />,我在应用程序标签中有它..BananoutMapActivity在我的清单中宣布过有趣的是:
当我在ICS模拟器上运行它时它会工作(错误出现在2.*模拟器和我的2.3.7设备上),在Honeycomb上,它很可能会工作,这是使用ACL的问题我猜
当我删除implements LoaderCallbacks<ArrayList<EventItem>>它也有效的部分,但这样我就无法使用LoaderManager
为什么在NoClassDefFoundError错误以及如何让我的MapCapableSherlockEnabledFragmentActivity中的加载器工作?
Mic*_*ł K 19
不推荐使用:我猜这个问题会随着谷歌地图Android API v2而消失.如果您决定使用已弃用的v1,则解决方案如下.
所以杰克回答了确切的问题,但我认为对某人来说,或多或少有详细的操作方法会很有用.那么如何让ActionBarSherlock与地图一起工作呢?
我假设你已经设置了ActionBarSherlock并作为一个库项目工作,你可以找到很多关于如何做的教程.
如果您只想将MapActivity与ActionBarSherlock一起使用 - 它很简单:
如果您想将MapView与Fragcomb或Loaders等Honeycomb功能一起使用:
protected void supportInvalidateOptionsMenu()并更改其可见性public(新版ABS中不需要此步骤)<uses-library android:name="com.google.android.maps" />Manifest文件的应用程序标记import android.support.v4.app.LoaderManager;instedimport android.app.LoaderManager;这是目前最好的解决方法,直到Google将地图放入兼容性库中.我希望他们能在4之前完成.*设备数量超过2个.*...
您需要使用支持库中的加载器而不是平台中的加载器.由于这些仅适用于Android 3.0+,并且您已将它们包含在类定义中这一事实将导致3.0之前的类加载器完全拒绝您的类.将导入切换到支持库变体应该是所需的全部内容.
如果您在Logcat中查看异常,您应该会看到一个或多个VerifyErrors,它们将具体说明它所遇到的问题.
您也只能android-support-v13在Android 3.2及更高版本上使用该库(因此v13在其名称中).
| 归档时间: |
|
| 查看次数: |
3415 次 |
| 最近记录: |