0

我创建了一个目标 api 为 4.0.3 (15) 的应用程序,但是当我在我的 4.0 设备上运行该应用程序时,我在清单中设置了 min api 为 2.3.3 (10)我的 2.3 设备它不加载只是在启动时强制关闭...

我知道 android 在构建之间存在碎片问题,我想知道是否有一种简单的方法可以使应用程序在两个系统上都运行,或者我是否还必须编写 2.3 版本。我是新手编码员,所以请对我温柔。

08-17 18:57:15.722: D/AndroidRuntime(4535): Shutting down VM
08-17 18:57:15.722: W/dalvikvm(4535): threadid=1: thread exiting with uncaught exception (group=0x4001d5a0)
08-17 18:57:15.722: E/AndroidRuntime(4535): FATAL EXCEPTION: main
08-17 18:57:15.722: E/AndroidRuntime(4535): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.reading.festival/com.reading.festival.ReadingFestival2012Activity}: java.lang.ClassNotFoundException: com.reading.festival.ReadingFestival2012Activity in loader dalvik.system.PathClassLoader[/data/app/com.reading.festival-1.apk]
08-17 18:57:15.722: E/AndroidRuntime(4535):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1785)
08-17 18:57:15.722: E/AndroidRuntime(4535):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1893)
08-17 18:57:15.722: E/AndroidRuntime(4535):     at android.app.ActivityThread.access$1500(ActivityThread.java:135)
08-17 18:57:15.722: E/AndroidRuntime(4535):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1054)
08-17 18:57:15.722: E/AndroidRuntime(4535):     at android.os.Handler.dispatchMessage(Handler.java:99)
08-17 18:57:15.722: E/AndroidRuntime(4535):     at android.os.Looper.loop(Looper.java:150)
08-17 18:57:15.722: E/AndroidRuntime(4535):     at android.app.ActivityThread.main(ActivityThread.java:4385)
08-17 18:57:15.722: E/AndroidRuntime(4535):     at java.lang.reflect.Method.invokeNative(Native Method)
08-17 18:57:15.722: E/AndroidRuntime(4535):     at java.lang.reflect.Method.invoke(Method.java:507)
08-17 18:57:15.722: E/AndroidRuntime(4535):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:849)
08-17 18:57:15.722: E/AndroidRuntime(4535):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:607)
08-17 18:57:15.722: E/AndroidRuntime(4535):     at dalvik.system.NativeStart.main(Native Method)
08-17 18:57:15.722: E/AndroidRuntime(4535): Caused by: java.lang.ClassNotFoundException: com.reading.festival.ReadingFestival2012Activity in loader dalvik.system.PathClassLoader[/data/app/com.reading.festival-1.apk]
08-17 18:57:15.722: E/AndroidRuntime(4535):     at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
08-17 18:57:15.722: E/AndroidRuntime(4535):     at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
08-17 18:57:15.722: E/AndroidRuntime(4535):     at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
08-17 18:57:15.722: E/AndroidRuntime(4535):     at android.app.Instrumentation.newActivity(Instrumentation.java:1040)
08-17 18:57:15.722: E/AndroidRuntime(4535):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1777)
08-17 18:57:15.722: E/AndroidRuntime(4535):     ... 11 more

主要活动

package com.reading.festival;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;

public class ReadingFestivalGuide2012Activity extends Activity  {

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //makes full screen and takes away title bar
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    //

    setContentView(R.layout.main);

    Button sitemap = (Button) findViewById(R.id.sitemap);
    sitemap.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {
            Intent myIntent = new Intent(view.getContext(), sitemap.class);
            startActivityForResult(myIntent, 0);
        }
    });

    Button lineup = (Button) findViewById(R.id.lineup);
    lineup.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {
            Intent myIntent = new Intent(view.getContext(), lineup.class);
            startActivityForResult(myIntent, 0);
                }
            });
        }
    }
4

2 回答 2

1

您需要检查 logcat 以了解确切的错误。您的错误可能是您正在使用对 2.3 设备上不可用的“更新”代码的调用。Logcat 是必须的(跟踪异常并找出应用程序的问题),但可以通过将目标 SDK 更改为 10 并检查编译错误来轻松检查我提到的问题。

于 2012-08-17T17:51:19.610 回答
0

好的,在阅读完我的代码后,我设法弄清楚我正在使用我现在发现的 xml 调用的东西在 14 以下的 api 中不受支持,删除了它,它现在可以工作了

于 2012-08-17T19:08:37.793 回答