0

マシュマロ以前のデバイスで実行できるアクティビティの一部と、マシュマロ以降のアクティビティの一部を含むアプリケーションを作成しています。だから私がしたいのは、マシュマロデバイスでサポートされているアクティビティを実行するプレマシュマロデバイスでアプリケーションがクラッシュしないようにし、デバイスがこのモジュールへのアクセスをサポートしていないというトーストを表示することです。

ここで、マシュマロ前のデバイスでアプリケーションをクラッシュさせる指紋モジュールに行き詰まっています。

 if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {

//do something
}
else
showToastMessage();

エラー

FATAL EXCEPTION: main
                java.lang.VerifyError: com/example/android/fingerprintdialog/MainActivity
                at java.lang.Class.newInstanceImpl(Native Method)
                at java.lang.Class.newInstance(Class.java:1130)
                at android.app.Instrumentation.newActivity(Instrumentation.java:1078)
                at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2210)
                at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2349)
                at android.app.ActivityThread.access$700(ActivityThread.java:159)
                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1316)
                at android.os.Handler.dispatchMessage(Handler.java:99)
                at android.os.Looper.loop(Looper.java:176)
                at android.app.ActivityThread.main(ActivityThread.java:5419)
                at java.lang.reflect.Method.invokeNative(Native Method)
                at java.lang.reflect.Method.invoke(Method.java:525)
                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046)
                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862)
                at dalvik.system.NativeStart.main(Native Method)
4

3 に答える 3

1

私のアプリケーションには、ランタイム許可を必要とするダウンロード ボタンがあります。

これは私がそれを行うことができた方法です:

public static int MY_PERMISSIONS_REQUEST_DOWNLOAD_IMAGE = 1;

btnDownLoad.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
                        urlFromDownload();
                        }
    });

public void urlFromDownload() {

            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                if (ActivityCompat.checkSelfPermission(getActivity(),
                        Manifest.permission.WRITE_EXTERNAL_STORAGE)
                        != PackageManager.PERMISSION_GRANTED) {

                    requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
                            MY_PERMISSIONS_REQUEST_DOWNLOAD_IMAGE);
                } else {

                    DowloadFileFromUrl downloadwall = new DowloadFileFromUrl();
                    if (downloadwall.getStatus() == AsyncTask.Status.RUNNING) {
                        // My AsyncTask has not started yet
                        Toast.makeText(getActivity(), "Please wait until download is complete", Toast.LENGTH_SHORT).show();
                    } else {
                        downloadwall.execute(imageUrl);
                    }

                }
            } else {

                DowloadFileFromUrl downloadwall = new DowloadFileFromUrl();
                if (downloadwall.getStatus() == AsyncTask.Status.RUNNING) {
                    // My AsyncTask has not started yet
                    Toast.makeText(getActivity(), "Please wait until download is complete", Toast.LENGTH_SHORT).show();
                } else {
                    downloadwall.execute(imageUrl);
                }

            }

        }

私のコードを理解していただければ幸いです。私がやったことは、ダウンロード コードを 2 回書いたことです。最初はマシュマロ用、2 番目は下位バージョン用です。

于 2016-09-27T08:03:28.793 に答える
0

それを以下の条件に入れます
if (Build.VERSION.SDK_INT >= 23) { // Your code for } else { // Code for previous versions }

于 2016-09-27T07:39:56.570 に答える