同时运行旧平台 Android 样本 EffectiveNavigation ClassNotFindException

标签: Android
发布时间: 2013/11/27 22:56:37
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我从实施有效导航-EffectiveNavigation.zip-的演示中的活动选项卡与一些刷卡视图运行该示例。4.2.2 (API17) 等较新的平台上,它运行正常。

然后我想支持较旧的平台如 2.3.3 (API10) 太,所以我降低到 4 minSdkVersion:

<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="17"/>

我包括支持库中的以下方法之一:

  1. 这本书由: V4支持库安装-没有资源
  2. 或由这本书: V7支持库安装-资源
  3. 或单击鼠标右键在项目中添加支持库-> Android 工具->

无论如何,运行该应用程序上 2.3.3 设备,此含糊不清的运行时异常发生在下面的列表。

以往曾经提出,赶在这之前请注意: 我的问题是我不能在旧的设备例如 2.3.3-上运行,但运行精细 4.2.2 等较新的设备上。

我删除、 导入和重建和与各种更改的设置,对各种仿真程序重新运行。它只是不能运行在较旧的设备 (我的目的使用的选项卡和刷卡的意见在较旧的设备) 上。

 java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.android.effectivenavigation/com.example.android.effectivenavigation.MainActivity}: java.lang.ClassNotFoundException: com.example.android.effectivenavigation.MainActivity in loader dalvik.system.PathClassLoader[/data/app/com.example.android.effectivenavigation-1.apk]
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1569)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
    at android.app.ActivityThread.access$1500(ActivityThread.java:117)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:130)
    at android.app.ActivityThread.main(ActivityThread.java:3683)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:507)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
    at dalvik.system.NativeStart.main(Native Method)
 Caused by: java.lang.ClassNotFoundException: com.example.android.effectivenavigation.MainActivity in loader dalvik.system.PathClassLoader[/data/app/com.example.android.effectivenavigation-1.apk]
    at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
    at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1561)

解决方法 1:

终于解决了后一天,一天晚上浪费了 !

大部分的问题是应用程序还执行某个子项和,需要更多的迁移工作。我不得不更改一些其他的位要使用支持库 (v4 和 v7),主要是:

Java 文件中的代码更改:

<< import android.app.ActionBar;
<< import android.app.FragmentTransaction;
---
>> import android.support.v7.app.ActionBar;
>> import android.support.v4.app.FragmentTransaction;


<< public class MainActivity extends FragmentActivity implements ActionBar.TabListener {
---
>> public class MainActivity extends ActionBarActivity implements ActionBar.TabListener {


<< final ActionBar actionBar = getActionBar();
---
>> final ActionBar actionBar = getSupportActionBar();

AndroidManifest.xml 中的变化:

<< <uses-sdk android:minSdkVersion="14" />
---
>> <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17"/>

<< android:theme="@android:style/Theme.Holo.Light.DarkActionBar">
---
>> android:theme="@style/Theme.AppCompat.Light.DarkActionBar">

它不是关于清理并重新生成项目,虽然你可能会这样做,如果它让你感觉更好。

现在我有操作栏和与 SwipeViews 选项卡上我 2.3.3 Android。

谷歌的做法太过于注重这些 backports 和我要使用它们,可惜没有关于它一些更清晰和完整的文档。我甚至有麻烦找那个视频我自己除非我指的 YouTube 历史-甚至不知道怎么找到它放在第一位。

官方微信
官方QQ群
31647020