2017-02-24 3 views
0

最小SDKバージョンを16(Jelly Bean 4.1)に設定していて、このAPIレベルと互換性のある方法でプロジェクトのほとんどをコーディングしましたが、SDKバージョン25が必要な小さなメソッドがあります。これは、Jelly Beanプラットフォームを搭載したデバイスで動作するアプリ全体を停止しますか? それをインストールすることを許可し、その特定の部分だけが動作しませんか?Androidの最小SDKはどちらの方法で動作しますか?

+0

Androidのバージョンを確認して互換性のないタイプの方が良い – brykneval

答えて

0

あなたはバージョン25に自分自身をコードし、トレンドに追いつくために古いプラクティスを再コーディングする必要があります。 Gradleが問題を抱えている可能性があります。APIは特定のメソッドをサポートしていません。特に、ユーザーが独自のメソッドで使用するライブラリをサポートしていません。

0

小切手を使用して代替バージョンを提供する必要があります。

if(android.os.Build.VERSION.SDK_INT >= 25) { 
    // use new method 
} else { 
    // use alternative method 
} 
1

注釈を使用して、メソッド内のこれらの問題を取り除くことができます。

@TargetApi(25) 

1.抽象メソッドを使用して抽象クラスを作成する必要があります。

public abstract class YourClass { 
     public abstract void doSomething(); 
    } 

2. 2つの実装。 1つはレガシーバージョン用、もう1つは新しいバージョン用です。新しいバージョンでは@TargetApiを入れます。

  • レガシーバージョン:

    public class YourClassLegacy extends YourClass { 
        public void doSomething(){ 
         //Legacy method 
        } 
    } 
    
  • 実装25バージョン:あなたはこの方法(doSomethingの()を呼び出す方法3.In

    @TargetApi(25) 
    public class YourClassNew extends YourClass { 
        public void doSomething(){ 
         //25 version method 
        } 
    } 
    

)、これを実装する必要があります。

public static void methodFoo(Context context) { 
     if (android.os.Build.VERSION.SDK_INT >= 25) { 
      //call to YourClassNew.doSomething(); 
     }else{ 
      //call to YourClassLegacy.doSomething(); 
     } 
    } 
関連する問題