0

4.0.3 (15) のターゲット API を使用してアプリを作成しましたが、最小 API が 2.3.3 (10) であることをマニフェストに設定しました。4.0 デバイスでアプリを実行すると、動作します。私の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

私のコードを読んだ後、1​​4未満のAPIでサポートされていないことがわかったxmlが呼び出したものを使用していたことがわかったので、これを削除して動作するようになりました

于 2012-08-17T19:08:37.793 に答える