This is my code for calling the uninstall Intent for a package name which is input through a text field.
The problem is, my app force closes when I press the button, below is my code-
public void uninstall(View view) {
String packagename = seturl.getText().toString();
Uri packageUri = Uri.parse(packagename);
Intent uninstallIntent = new Intent(Intent.ACTION_UNINSTALL_PACKAGE,
packageUri);
startActivity(uninstallIntent);
}
logs
12-24 22:18:43.456: E/AndroidRuntime(31831): FATAL EXCEPTION: main
12-24 22:18:43.456: E/AndroidRuntime(31831): Process: com.example.xadb, PID: 31831
12-24 22:18:43.456: E/AndroidRuntime(31831): java.lang.IllegalStateException: Could not execute method for android:onClick
12-24 22:18:43.456: E/AndroidRuntime(31831): at android.view.View$DeclaredOnClickListener.onClick(View.java)
12-24 22:18:43.456: E/AndroidRuntime(31831): at android.view.View.performClick(View.java)
12-24 22:18:43.456: E/AndroidRuntime(31831): at android.widget.TextView.performClick(TextView.java)
12-24 22:18:43.456: E/AndroidRuntime(31831): at android.view.View$PerformClick.run(View.java)
12-24 22:18:43.456: E/AndroidRuntime(31831): at android.os.Handler.handleCallback(Handler.java)
12-24 22:18:43.456: E/AndroidRuntime(31831): at android.os.Handler.dispatchMessage(Handler.java)
12-24 22:18:43.456: E/AndroidRuntime(31831): at android.os.Looper.loop(Looper.java)
12-24 22:18:43.456: E/AndroidRuntime(31831): at android.app.ActivityThread.main(ActivityThread.java)
12-24 22:18:43.456: E/AndroidRuntime(31831): at java.lang.reflect.Method.invoke(Native Method)
12-24 22:18:43.456: E/AndroidRuntime(31831): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java)
12-24 22:18:43.456: E/AndroidRuntime(31831): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java)
12-24 22:18:43.456: E/AndroidRuntime(31831): at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:102)
12-24 22:18:43.456: E/AndroidRuntime(31831): Caused by: java.lang.reflect.InvocationTargetException
12-24 22:18:43.456: E/AndroidRuntime(31831): at java.lang.reflect.Method.invoke(Native Method)
12-24 22:18:43.456: E/AndroidRuntime(31831): ... 12 more
12-24 22:18:43.456: E/AndroidRuntime(31831): Caused by: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.UNINSTALL_PACKAGE dat=com.example.avd VirtualScreenParam=Params{mDisplayId=-1, null, mFlags=0x00000000)} }
12-24 22:18:43.456: E/AndroidRuntime(31831): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java)
12-24 22:18:43.456: E/AndroidRuntime(31831): at android.app.Instrumentation.execStartActivity(Instrumentation.java)
12-24 22:18:43.456: E/AndroidRuntime(31831): at android.app.Activity.startActivityForResult(Activity.java)
12-24 22:18:43.456: E/AndroidRuntime(31831): at android.app.Activity.startActivityForResult(Activity.java)
12-24 22:18:43.456: E/AndroidRuntime(31831): at android.app.Activity.startActivity(Activity.java)
12-24 22:18:43.456: E/AndroidRuntime(31831): at android.app.Activity.startActivity(Activity.java)
12-24 22:18:43.456: E/AndroidRuntime(31831): at com.example.xadb.MainActivity.uninstall(MainActivity.java:61)
12-24 22:18:43.456: E/AndroidRuntime(31831): ... 13 more
Issue is with the package name,it is not getting the right one,first hardcore the package(if your package name is
com.android.yourpakgenamehere) name and see if it works!Then you can get it like this and replace that hardcore name ,
Global to the class:
Then..
Now you have the package name so do this;
anyway when you put it on the play store can you change your package name? So even that string value is static