gpt4 book ai didi

android - 为旧平台运行 Android 示例 EffectiveNavigation 时出现 ClassNotFindException

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:00:01 26 4
gpt4 key购买 nike

我正在运行来自 Implementing Effective Navigation 的示例- EffectiveNavigation.zip - 它演示了 Activity 中带有选项卡的一些滑动 View 。它在更新的平台上运行良好,例如 4.2.2 (API17)。

然后我也想支持旧平台,例如 2.3.3 (API10),所以我将 minSdkVersion 降低到 4:

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

我确实通过以下方式之一包含支持库:

  1. 通过书:V4 Support Library Setup - without resources
  2. 或按书:V7 Support Library Setup - with resources
  3. 或者在项目中右击->Android Tools->Add Support Library

无论如何,当我在 2.3.3 设备上运行该应用程序时,会出现以下不明确的运行时异常。

在匆匆忙忙之前,请注意:我的问题是我无法在 2.3.3 等较旧的设备上运行它 - 但在 4.2.2 等较新的设备上运行良好。

我删除、重新导入、重建并在各种模拟器上使用各种更改的设置重新运行。它只是不能在旧设备上运行(我的目的是在旧设备上使用选项卡和滑动 View )。

 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)

最佳答案

终于解决了,浪费了一天一夜!

大部分问题是该应用程序还实现了一个 ActionBar,这需要更多的迁移工作。我必须更改其他一些位才能使用支持库(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">

这与清理和重建项目无关,但如果它让您感觉好些,您可以这样做。

现在我的 2.3.3 Android 上有了带有 SwipeViews 的 ActionBar 和 Tabs。

Google 非常重视这些向后移植,我不得不使用它们,可惜没有关于它的更清晰和完整的文档。除非我引用 YouTube 历史记录,否则我什至自己都找不到该视频 - 甚至不知道我是如何找到它的。

关于android - 为旧平台运行 Android 示例 EffectiveNavigation 时出现 ClassNotFindException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18049667/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com