0

私はandroid.iは初めてですが、エミュレーターでアプリケーションを実行しますが、常にエラー.logcatが表示されます:スタックトレースファイル '/data/anr/traces.txt'を開けません:許可が拒否されました

WhereAmIActivity.Java

package com.paad.whereami;

import android.app.Activity;
import android.content.Context;
import android.location.Location;
import android.location.LocationManager;
import android.os.Bundle;
import android.widget.TextView;

public class WhereAmIActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    LocationManager locationManager;
    String context = Context.LOCATION_SERVICE;
    locationManager = (LocationManager)getSystemService(context);//bulid locationmanager

    String provider = LocationManager.KEY_LOCATION_CHANGED;
    Location location = locationManager.getLastKnownLocation(provider);//get lastlocation

    updateWithNewLocation(location);//pass to updatewithnewlocation
}

private void updateWithNewLocation(Location location){//show Location in TextView
    String latLongString;
    TextView myLocationText;
    myLocationText = (TextView)findViewById(R.id.myLocationText);//
    if(location!=null){//
        double lat = location.getLatitude();
        double lng = location.getLongitude();
        latLongString = "Lat:"+lat+"\nLong:"+lng;
    }else{//
        latLongString = "No location found";
    }
    myLocationText.setText("Your Current POsition is:\n"+latLongString);//
}

}

使用許可

<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"/> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 
4

2 に答える 2

0

これは、現在の場所を取得する方法ではありません。それは最後の既知の場所です。現在の場所を取得するには、新しい場所を取得したときにOSに通知するように要求する必要があります(多くのことに基づいて不明な時間がかかるため)。

于 2012-06-19T13:21:24.380 に答える
0

スタック トレース ファイル '/data/anr/traces.txt' を開けません: 権限が拒否されました

traces.txt ファイルにアクセスしようとしている場所がわかりません。ただし、アクセス許可エラーが表示されている場合は、解決するためにフルアクセスを許可してください:)

ターミナルで次のコマンドを実行します

$adb shell
#cd \data
#chmod 777 anr

実際のデバイスで試すと、上記のコマンドが機能しない可能性があることに注意してください。ルートが必要です。

于 2012-06-19T12:52:53.410 に答える