2017-04-03 6 views
3

私はAndroidプログラミングとStackOverflowの初心者です。これは私の最初の質問ですが、私は以前はStackOverflowプラットフォームを使用していました。今、私の質問に。私は、SDK 11のすべてのアンドロイドデバイスで正常に動作していたAndroidアプリを持っています。しかし、SDK 25のアップデートでは、ロリポップ前のデバイスでクラッシュします。前のロリポップデバイスのAndroidリップル描画エラー - Android SDK 25

次のように私のログの猫は、次のとおりです。

Could not find class 'android.graphics.drawable.RippleDrawable', referenced from method android.support.v7.widget.AppCompatImageHelper.hasOverlappingRendering 

私は私のGradleでvectorDrawables.useSupportLibrary = trueが含まれています。私のminSdkVersion = 11targetSdkVersion = 25supportLibraryVersion = 25.2.0

私はここで見つけることができますが、何も動作しません。だから私はあなたの助けが必要な人をお待ちしています私はこの問題を解決できるように学びたいと思っています。

ありがとうございました。

+0

あなたはどちらのバージョンを使用していますか? –

+0

私はGradle Version 3.3とPlugin Version 2.3を使用しています –

+0

正しいです。この例外の原因となる画像を参照しようとする以外のコードをすべて削除するだけでプロジェクトを共有できますか? –

答えて

2

デバッグは時々苦痛を伴うことがあり、上記の質問は私の元のコードの簡単な間違いの結果でした。人間は間違っています...

今すぐ解決してください。次のように私の最初のコードがあって、あなたが鋭く見える場合は、デバイスは、これは、初期化メソッドであるバージョン23

 if(Build.VERSION.SDK_INT >= 23) { 
     if(checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) { 
      // Storage permissions is already available, save profile photo 

      initialization(); 
     } else { 
      // Providing additional rational to the user if permission was not granted 
      if(shouldShowRequestPermissionRationale(Manifest.permission.WRITE_EXTERNAL_STORAGE)) { 
       Toast.makeText(this, "Storage permission is needed to save your profile photo.", Toast.LENGTH_LONG).show(); 
      } 

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

を下回っている場合Build.Versionをチェックするif文の間に初期化コードが実行されないことに注意します。 Androidバージョンが23より低いデバイスでは、実行されなかったため、Could not find classエラーが発生しました。しかし、私はまだVector Drawablesをコード内のどこにも使用していないので、これがRipple Drawableにどのように関連しているのか分かりません。だから、これを読むために取得した誰もが原因下記のAndroidバージョン23とを備えたデバイスのための他のであれば修正を含む完全なコードへ

private void initialization() { 

    hoverView = (View) findViewById(R.id.hoverView); 
    hoverView.setVisibility(View.GONE); 

    mExitAppDialog = new HookUpDialog(this); 
    mExitAppDialog.setMessage(getString(R.string.exit_app_message)); 
    mExitAppDialog.setOnButtonClickListener(HookUpDialog.BUTTON_OK, 
      new OnClickListener() { 

       @Override 
       public void onClick(View v) { 
        mExitAppDialog.dismiss(); 

        if (WallActivity.getInstance() != null) { 
         WallActivity.getInstance().finish(); 
        } 
        sInstance.finish(); 

        /* Informing the user, to press back again to exit */ 
        Toast.makeText(getApplicationContext(), 
          R.string.press_back_again_to_exit, 
          Toast.LENGTH_SHORT).show(); 

       } 
      }); 
    mExitAppDialog.setOnButtonClickListener(HookUpDialog.BUTTON_CANCEL, 
      new OnClickListener() { 

       @Override 
       public void onClick(View v) { 
        mExitAppDialog.dismiss(); 

       } 
      }); 
    mLlRecentActivity = (LinearLayout) findViewById(R.id.llRecentActivity); 
    mNoActivitiesView = (TextView) findViewById(R.id.tvNoRecentActivities); 
} 

そして今、上にいくつかの光を当てることがあります。 @Anuragシンへ

  if(Build.VERSION.SDK_INT >= 23) { 
     if(checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) { 
      // Storage permissions is already available, save profile photo 

      initialization(); 
     } else { 
      // Providing additional rational to the user if permission was not granted 
      if(shouldShowRequestPermissionRationale(Manifest.permission.WRITE_EXTERNAL_STORAGE)) { 
       Toast.makeText(this, "Storage permission is needed to save your profile photo.", Toast.LENGTH_LONG).show(); 
      } 

      requestPermissions(new String[] {Manifest.permission.READ_CONTACTS}, WRITE_EXTERNAL_STORAGE); 
     } 
    } else if (Build.VERSION.SDK_INT < 23) { 
     // Storage permissions is already available, save profile photo 

     initialization(); 

    } 

おかげで、私はテストと再試験の時間と時間後にこれを見ることができました。グーグルとグーグル

関連する問題