Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有一个错误;不幸的是,我的申请已经停止;当我在android studio中运行我的程序时_Android_Android Studio - Fatal编程技术网

有一个错误;不幸的是,我的申请已经停止;当我在android studio中运行我的程序时

有一个错误;不幸的是,我的申请已经停止;当我在android studio中运行我的程序时,android,android-studio,Android,Android Studio,我在android studio中运行程序时出错。这是下面的错误消息: 10-22 19:13:54.831 3478-3478/com.example.natasya.myapplication E/AndroidRuntime: FATAL EXCEPTION: main 10-22 19:13:54.831 3478-3478/com.example.natasya.myapplication E/AndroidRuntime: Process: com.example.natasya.m

我在android studio中运行程序时出错。这是下面的错误消息:

10-22 19:13:54.831 3478-3478/com.example.natasya.myapplication E/AndroidRuntime: FATAL EXCEPTION: main
10-22 19:13:54.831 3478-3478/com.example.natasya.myapplication E/AndroidRuntime: Process: com.example.natasya.myapplication, PID: 3478
10-22 19:13:54.831 3478-3478/com.example.natasya.myapplication E/AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.natasya.myapplication/com.example.natasya.myapplication.MainActivity}: java.lang.IllegalArgumentException: invalid provider: null
10-22 19:13:54.831 3478-3478/com.example.natasya.myapplication E/AndroidRuntime:     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
10-22 19:13:54.831 3478-3478/com.example.natasya.myapplication E/AndroidRuntime:     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
10-22 19:13:54.831 3478-3478/com.example.natasya.myapplication E/AndroidRuntime:     at android.app.ActivityThread.-wrap11(ActivityThread.java)
10-22 19:13:54.831 3478-3478/com.example.natasya.myapplication E/AndroidRuntime:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
10-22 19:13:54.831 3478-3478/com.example.natasya.myapplication E/AndroidRuntime:     at android.os.Handler.dispatchMessage(Handler.java:102)
10-22 19:13:54.831 3478-3478/com.example.natasya.myapplication E/AndroidRuntime:     at android.os.Looper.loop(Looper.java:148)
10-22 19:13:54.831 3478-3478/com.example.natasya.myapplication E/AndroidRuntime:     at android.app.ActivityThread.main(ActivityThread.java:5417)
10-22 19:13:54.831 3478-3478/com.example.natasya.myapplication E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Native Method)
10-22 19:13:54.831 3478-3478/com.example.natasya.myapplication E/AndroidRuntime:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
10-22 19:13:54.831 3478-3478/com.example.natasya.myapplication E/AndroidRuntime:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
10-22 19:13:54.831 3478-3478/com.example.natasya.myapplication E/AndroidRuntime:  Caused by: java.lang.IllegalArgumentException: invalid provider: null
10-22 19:13:54.831 3478-3478/com.example.natasya.myapplication E/AndroidRuntime:     at android.location.LocationManager.checkProvider(LocationManager.java:1704)
10-22 19:13:54.831 3478-3478/com.example.natasya.myapplication E/AndroidRuntime:     at android.location.LocationManager.getLastKnownLocation(LocationManager.java:1194)
10-22 19:13:54.831 3478-3478/com.example.natasya.myapplication E/AndroidRuntime:     at com.example.natasya.myapplication.MainActivity.getlongilatifile(MainActivity.java:103)
10-22 19:13:54.831 3478-3478/com.example.natasya.myapplication E/AndroidRuntime:     at com.example.natasya.myapplication.MainActivity.onCreate(MainActivity.java:76)
10-22 19:13:54.831 3478-3478/com.example.natasya.myapplication E/AndroidRuntime:     at android.app.Activity.performCreate(Activity.java:6237)
10-22 19:13:54.831 3478-3478/com.example.natasya.myapplication E/AndroidRuntime:     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
10-22 19:13:54.831 3478-3478/com.example.natasya.myapplication E/AndroidRuntime:     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
10-22 19:13:54.831 3478-3478/com.example.natasya.myapplication E/AndroidRuntime:     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
10-22 19:13:54.831 3478-3478/com.example.natasya.myapplication E/AndroidRuntime:     at android.app.ActivityThread.-wrap11(ActivityThread.java) 
10-22 19:13:54.831 3478-3478/com.example.natasya.myapplication E/AndroidRuntime:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
10-22 19:13:54.831 3478-3478/com.example.natasya.myapplication E/AndroidRuntime:     at android.os.Handler.dispatchMessage(Handler.java:102) 
10-22 19:13:54.831 3478-3478/com.example.natasya.myapplication E/AndroidRuntime:     at android.os.Looper.loop(Looper.java:148) 
10-22 19:13:54.831 3478-3478/com.example.natasya.myapplication E/AndroidRuntime:     at android.app.ActivityThread.main(ActivityThread.java:5417) 
10-22 19:13:54.831 3478-3478/com.example.natasya.myapplication E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Native Method) 
10-22 19:13:54.831 3478-3478/com.example.natasya.myapplication E/AndroidRuntime:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
10-22 19:13:54.831 3478-3478/com.example.natasya.myapplication E/AndroidRuntime:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
MainActivity.java的第103行如下:

Location location = locationManager.getLastKnownLocation(bestProvider);
这是AndroidManifest.xml中的权限代码:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" ></uses-permission>
<uses-permission android:name="android.permission.RECORD_AUDIO" ></uses-permission>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" ></uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" ></uses-permission>
<uses-permission android:name="android.permission.INTERNET" ></uses-permission>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" ></uses-permission>

我不明白为什么会这样?请帮帮我

这是主要的活动:

import java.io.File;
import java.io.IOException;
import java.sql.SQLOutput;
import java.util.ArrayList;
import java.util.Date;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.media.MediaRecorder;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.os.StrictMode;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import java.text.SimpleDateFormat;
import java.util.List;

public class MainActivity extends Activity {

public double longi1 = 0.0;
public double lati1 = 0.0;
public LocationListener locationListener ;
public TextView Longi1;
public TextView Lati1;

Button b1;
int cekbutton;
public String filename="";
SimpleDateFormat formatter = new SimpleDateFormat("yyyy_MM_dd_HH_mm_ss");
Date now = new Date();
String fileName = formatter.format(now);
private static final String AUDIO_RECORDER_FILE_EXT_AMR = ".amr";
private static final String AUDIO_RECORDER_FOLDER = "AudioRecorder";

private MediaRecorder recorder = null;
private int currentFormat = 0;
private int output_formats[] = {MediaRecorder.OutputFormat.RAW_AMR};
private String file_exts[] = {AUDIO_RECORDER_FILE_EXT_AMR};

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    if(Build.VERSION.SDK_INT > 9){
        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy);
    }
    b1 = (Button) findViewById(R.id.button);
    getlongilatifile();
    b1.setOnClickListener(new View.OnClickListener(){
        public void onClick(View v){
            if(cekbutton==0)
            {
                cekbutton=1;
                b1.setText("STOP");
                startRecording();
            }
            else if(cekbutton==1)
            {
                stopRecording();
                Intent i = new Intent(MainActivity.this,halaman2.class);
                i.putExtra("nama", filename);
                startActivity(i);

            }

        }
    });

}

public void getlongilatifile(){
    LocationManager locationManager =
            (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    Criteria criteria = new Criteria();
    String bestProvider = locationManager.getBestProvider(criteria, true);

    Location location = locationManager.getLastKnownLocation(bestProvider);

    Longi1= (TextView) findViewById(R.id.textView1);
    Lati1= (TextView) findViewById(R.id.textView);
    locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1, 1, new LocationListener() {

        @Override
        public void onStatusChanged(String provider, int status, Bundle extras) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onProviderEnabled(String provider) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onProviderDisabled(String provider) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onLocationChanged(Location location) {
            // TODO Auto-generated method stub

            longi1 = location.getLongitude();
            lati1 = location.getLatitude();
            Longi1.setText(longi1+"");
            Lati1.setText(lati1+"");

            try {
                DefaultHttpClient hc=new DefaultHttpClient();
                ResponseHandler<String> res=new BasicResponseHandler();
                HttpPost postMethod = new HttpPost("http://10.0.2.2:8080/send_malem_3.php");
                System.out.printf("test setelah nyambung");
                List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
                nameValuePairs.add(new BasicNameValuePair("nama", fileName+".amr"));
                postMethod.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                HttpResponse response2 = hc.execute(postMethod);
                } 
catch (ClientProtocolException e) 
{
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                Toast.makeText(getBaseContext(), "Gagal 2", Toast.LENGTH_SHORT).show();
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

        }
    });

}

private void startRecording(){
    recorder = new MediaRecorder();

    recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
    recorder.setOutputFormat(output_formats[currentFormat]);
    recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
    getFilename();
    recorder.setOutputFile(filename);

    recorder.setOnErrorListener(errorListener);
    recorder.setOnInfoListener(infoListener);

    try {
        recorder.prepare();
        recorder.start();
    } catch (IllegalStateException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}
private void getFilename(){
    String filepath = Environment.getExternalStorageDirectory().getPath();
    File file = new File(filepath,AUDIO_RECORDER_FOLDER);

    if(!file.exists()){
        file.mkdirs();
    }
    filename = (file.getAbsolutePath() + "/" + fileName + file_exts[currentFormat]);
}
private MediaRecorder.OnErrorListener errorListener = new MediaRecorder.OnErrorListener() {
    @Override
    public void onError(MediaRecorder mr, int what, int extra) {
        AppLog.logString("Error: " + what + ", " + extra);
    }
};

private MediaRecorder.OnInfoListener infoListener = new MediaRecorder.OnInfoListener() {
    @Override
    public void onInfo(MediaRecorder mr, int what, int extra) {
        AppLog.logString("Warning: " + what + ", " + extra);
    }
};
private void stopRecording(){
    if(null != recorder){
        recorder.stop();
        recorder.reset();
        recorder.release();

        recorder = null;
    }
}
导入java.io.File;
导入java.io.IOException;
导入java.sql.SQLOutput;
导入java.util.ArrayList;
导入java.util.Date;
导入android.app.Activity;
导入android.content.Context;
导入android.content.Intent;
导入android.location.Criteria;
导入android.location.location;
导入android.location.LocationListener;
导入android.location.LocationManager;
导入android.media.MediaRecorder;
导入android.os.Build;
导入android.os.Bundle;
导入android.os.Environment;
导入android.os.StrictMode;
导入android.view.Menu;
导入android.view.MenuItem;
导入android.view.view;
导入android.widget.Button;
导入android.widget.TextView;
导入android.widget.Toast;
导入org.apache.http.HttpResponse;
导入org.apache.http.NameValuePair;
导入org.apache.http.client.ClientProtocolException;
导入org.apache.http.client.ResponseHandler;
导入org.apache.http.client.entity.UrlEncodedFormEntity;
导入org.apache.http.client.methods.HttpPost;
导入org.apache.http.impl.client.BasicResponseHandler;
导入org.apache.http.impl.client.DefaultHttpClient;
导入org.apache.http.message.BasicNameValuePair;
导入java.text.simpleDataFormat;
导入java.util.List;
公共类MainActivity扩展了活动{
公共设施1=0.0;
公共双精度1=0.0;
公共场所监听器场所监听器;
公共文本视图1;
公共文本视图1;
按钮b1;
内切克按钮;
公共字符串filename=“”;
SimpleDataFormat格式化程序=新的SimpleDataFormat(“yyyy_-MM_-dd_-HH_-MM_-ss”);
现在日期=新日期();
字符串文件名=formatter.format(现在);
专用静态最终字符串音频\u记录器\u文件\u EXT\u AMR=“.AMR”;
专用静态最终字符串音频\u记录器\u文件夹=“音频记录器”;
私有MediaRecorder=null;
私有int currentFormat=0;
私有int-output_-formats[]={MediaRecorder.OutputFormat.RAW_-AMR};
私有字符串文件\u exts[]={音频\u记录器\u文件\u EXT\u AMR};
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
如果(Build.VERSION.SDK_INT>9){
StrictMode.ThreadPolicy policy=新建StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(策略);
}
b1=(按钮)findViewById(R.id.Button);
getlongilatifile();
b1.setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图v){
如果(cekbutton==0)
{
切克按钮=1;
b1.设定文本(“停止”);
startRecording();
}
else if(cekbutton==1)
{
停止录制();
意图i=新意图(MainActivity.this,halaman2.class);
i、 putExtra(“nama”,文件名);
星触觉(i);
}
}
});
}
public void getlongilatifile(){
位置管理器位置管理器=
(LocationManager)getSystemService(Context.LOCATION\u服务);
标准=新标准();
字符串bestProvider=locationManager.getBestProvider(条件为true);
Location Location=locationManager.getLastKnownLocation(bestProvider);
Longi1=(TextView)findViewById(R.id.textView1);
Lati1=(TextView)findViewById(R.id.TextView);
locationManager.RequestLocationUpdate(locationManager.GPS_提供程序,1,1,新LocationListener(){
@凌驾
public void onStatusChanged(字符串提供程序、int状态、Bundle extra){
//TODO自动生成的方法存根
}
@凌驾
公共无效onProviderEnabled(字符串提供程序){
//TODO自动生成的方法存根
}
@凌驾
公共无效onProviderDisabled(字符串提供程序){
//TODO自动生成的方法存根
}
@凌驾
已更改位置上的公共无效(位置){
//TODO自动生成的方法存根
longi1=location.getLongitude();
lati1=location.getLatitude();
Longi1.setText(Longi1+“”);
Lati1.setText(Lati1+“”);
试一试{
DefaultHttpClient hc=新的DefaultHttpClient();
ResponseHandler res=新的BasicResponseHandler();
HttpPost postMethod=新的HttpPost(“http://10.0.2.2:8080/send_malem_3.php");
System.out.printf(“test setelah nyambung”);
List nameValuePairs=新的ArrayList();
添加(新的BasicNameValuePair(“nama”,fileName+“.amr”);
setEntity(新的UrlEncodedFormEntity(nameValuePairs));
HttpResponse response2=hc.execute(postMethod);
} 
捕获(客户端协议例外e)
{
//TODO自动生成的捕捉块
e、 printStackTrace();
}捕获(IOE异常){
Toast.makeText(getBaseContext(),“Gagal 2”,Toast.LENGTH_SHORT.show();
//TODO自动生成的捕捉块
e、 printStackTrace();
}
}
});
}
私有无效开始记录(){
记录器=新的MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
setOutputFormat(输出格式[currentFormat]);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
getFilename();
setOutputFile(文件名);
recorder.SetOneErrorListener(errorListener);
recorder.setOnInfoListener(infoListener);
试一试{
记录器。准备();
recorder.start();
}捕获(非法状态){
e、 印刷品
public Location getLastKnownLocation(String provider) {
    checkProvider(provider);
    String packageName = mContext.getPackageName();
    LocationRequest request = LocationRequest.createFromDeprecatedProvider(
            provider, 0, 0, true);
    try {
        return mService.getLastLocation(request, packageName);
    } catch (RemoteException e) {
        Log.e(TAG, "RemoteException", e);
        return null;
    }
}
private static void checkProvider(String provider) {
    if (provider == null) {
        throw new IllegalArgumentException("invalid provider: " + provider);
    }
}