2017-11-23 4 views
1

Android Awareness APIを使用して気象データにアクセスしようとしています。私のアプリは、データを表示する前にクラッシュします。私は問題がonCompleteメソッド内にあると信じています。なぜなら、UIがクラッシュする前に画面上で簡単に点滅していて、以前にその行までデバッガを実行できるからです。Android用Google Awareness APIにアクセスするクラッシュApp

コンソールに「FATAL EXCEPTION:GoogleApiHandler」と「java.lang.SecurityException:パッケージのAPIキーが無効です」というメッセージが表示されます。制限のないAPIキーを使用して問題が指紋やパッケージ名でないことを確認しています。で、私は私のアプリモジュールのGradleスクリプトはまた、「実装 『11.6.0:プレイサービス-意識com.google.android.gms』」を含ん

<meta-data android:name="com.google.android.awareness.API_KEY" android:value="[key here]"/>

を使用してマニフェストに自分のAPIキーが含まれています依存関係。

また、Awareness.APIは推奨されていませんが、ドキュメントで使用されているため、何を置き換えるべきかわかりませんという警告もあります。

私のコードは以下の通りです。

public class MainActivity extends AppCompatActivity { 

private static int MY_PERMISSION_LOCATION; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    if (ContextCompat.checkSelfPermission(
      MainActivity.this, 
      Manifest.permission.ACCESS_FINE_LOCATION) == 
      PackageManager.PERMISSION_GRANTED) { 

     GoogleApiClient client = new GoogleApiClient.Builder(this.getApplicationContext()) 
       .addApi(Awareness.API) 
       .build(); 
     client.connect(); 

     SnapshotClient sc = Awareness.getSnapshotClient(this); 
     Task<WeatherResponse> weatherResponseTask = sc.getWeather().addOnCompleteListener(new OnCompleteListener<WeatherResponse>() { 
      @Override 
      public void onComplete(@NonNull Task<WeatherResponse> task) { 
       WeatherResponse wr = task.getResult(); 
       Weather weather = wr.getWeather(); 
       float temp = weather.getTemperature(Weather.FAHRENHEIT); 
       TextView textView = findViewById(R.id.tempText); 
       textView.setText("It is currently " + temp + " degrees outside."); 
      } 
     }); 
    } else { 
     ActivityCompat.requestPermissions(
       MainActivity.this, 
       new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 
       MY_PERMISSION_LOCATION 
     ); 
     return; 
    } 
} 
} 

答えて

0

同じ問題が発生しました。私はパッケージにキーを制限しようとしましたが、まだ '無効なキー'の問題があります。

最後に、このpostが私を助けました。 meta_dataタグがマニフェストのapplicationタグの内側に配置されていることを確認してください。

+0

メタデータタグに関するヒントをありがとう。私は間違った場所でそれを持っていましたが、それを移動した後、私は同じエラーがあります。私の問題は、ビルダーでアプリがクラッシュするためリンクした質問と同じではありませんが、私よりもさらに数行は得られます。 – user1959417

関連する問題