Приложение вылетает при нажатии кнопки. Я сделал простое приложение, которое делится своим apk-файлом, нажимая кнопку. Я хочу реализовать его в своем основном приложении, но не знаю, в чем ошибка
package com.studenthelper.share;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import java.io.File;
public class MainActivity extends AppCompatActivity {
Button shr;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
shr = (Button) findViewById(R.id.but);
shr.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ApplicationInfo api = getApplicationContext().getApplicationInfo();
String filePath = api.sourceDir;
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("application/vnd.android.package-archive");
intent.putExtra(Intent.EXTRA_STREAM,
Uri.fromFile(new File(filePath)));
startActivity(Intent.createChooser(intent, "Share Using"));
}
});
}
}
log 2020-03-01 17: 26: 53.758 4741-4741 / com.studenthelper.share E / AndroidRuntime : ИСКЛЮЧИТЕЛЬНОЕ ИСКЛЮЧЕНИЕ: основной процесс: com.studenthelper.share, PID: 4741 android .os.FileUriExposedException: файл: ///data/app/com.studenthelper.share-s51_qOKFxmQ8bo6zuBgGow%3D%3D/base.apk раскрыт вне пределов приложение через ClipData.Item.getUri () в android .os.StrictMode.onFileUriExposed (StrictMode. java: 1978) в android. net .Uri.checkFileUriExposed (Uri. java: 2371) в android .content.ClipData.prepareToLeaveProcess (ClipData. java: 963) в android .content.Intent.prepareToLeaveProcess (Intent. java: 10228) в android .content.Intent.prepareToLeaveProcess (Intent. java: 10234) в android .content.Intent.prepareToLeaveProcess (Intent. java: 10213) в android .app.Instrumentation.execStartActivity (Инструментарий. java: 1669) в android .app .Activity.startActivityForResult (Activity. java: 4590) по адресу androidx.fragment.app.FragmentActivity.startActi vityForResult (FragmentActivity. java: 676) в android .app.Activity.startActivityForResult (Activity. java: 4548) в androidx.fragment.app.FragmentActivity.startActivityForResult (FragmentActivity. java: 663) в android .app.Activity.startActivity (Activity. java: 4909) по android .app.Activity.startActivity (Activity. java: 4877) по адресу com.studenthelper.share.MainActivity $ 1.onClick (MainActivity. java: 33) в android .view.View.performClick (просмотр. java: 6605) в android .view.View.performClickInternal (просмотр. java: 6582) в android .view .View.access $ 3100 (просмотр. java: 778) в android .view.View $ PerformClick.run (просмотр. java: 25897) в android .os.Handler.handleCallback (обработчик. java: 873) в android .os.Handler.dispatchMessage (Обработчик. java: 99) в android .os.Looper.l oop (Looper. java: 193) в android. app.ActivityThread.main (ActivityThread. java: 6692) в java .lang.reflect.Method.invoke (собственный метод) в com. android .internal.os.RuntimeInit $ MethodAndArgsCaller.run (RuntimeInit. java: 493) по тел. android .internal.os.Zyg oteInit.main (ZygoteInit. java: 858) 2020-03-01 17: 26: 53.787 4741-4741 / com.studenthelper.share I / Процесс: отправка сигнала. PID: 4741 SIG: 9