Android无法在我的测试手机Pixel XL上安装我的应用程序,从Eclipse移植到Android Studio

Rbe*_*ben 10 debugging installation android android-studio

几年来,我一直在为朋友的公司维护应用程序.当他们最近从Android 5更新到Android 7时,该应用程序停止了工作.所以我移植到Android Studio并开始修复东西.现在,在挤出一堆bug之后,我无法将应用程序安装到我的测试手机上,这是运行Android 8的Pixel XL.它运行调试图像,直到我卸载它,所以我可以测试安装.(我认为这是因为Instant Run.)

现在我得到以下内容:

$ adb install-multiple -r -t I:\Users\...\app\build\intermediates\split-apk\debug\slices\slice_0.apk I:\Users\...\app\build\intermediates\split-apk\debug\slices\slice_1.apk I:\Users\...\app\build\intermediates\split-apk\debug\slices\slice_7.apk I:\Users\...\app\build\intermediates\split-apk\debug\slices\slice_4.apk I:\Users\...\app\build\intermediates\split-apk\debug\slices\slice_5.apk I:\Users\...\app\build\intermediates\split-apk\debug\dep\dependencies.apk I:\Users\...\app\build\intermediates\split-apk\debug\slices\slice_6.apk I:\Users\...\app\build\intermediates\split-apk\debug\slices\slice_3.apk I:\Users\...\app\build\intermediates\split-apk\debug\slices\slice_8.apk I:\Users\...\app\build\intermediates\split-apk\debug\slices\slice_2.apk I:\Users\...\app\build\intermediates\split-apk\debug\slices\slice_9.apk I:\Users\...\app\build\outputs\apk\debug\app-debug.apk 
Split APKs installed

$ adb shell am start -n "com.pbs.deliverytrack1/com.pbs.deliverytrack1.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -D
    Error while executing: am start -n "com.pbs.deliverytrack1/com.pbs.deliverytrack1.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -D
    Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.pbs.deliverytrack1/.MainActivity }
    Error type 3
    Error: Activity class {com.pbs.deliverytrack1/com.pbs.deliverytrack1.MainActivity} does not exist.

    Error while Launching activity
Run Code Online (Sandbox Code Playgroud)

com.pbs.deliverytrack1/com.pbs.deliverytrack1.MainActivity看起来是否正确?

附加说明: 我能够在运行Nougat 7.0的Samsung Edge 7.0上通过电子邮件安装apk.我仍然无法安装在运行Oreo 8.0的Google Pixel XL上.

我已经尝试过我能想到的构建版本的每个组合.关键,我认为是在错误消息中:

$ adb shell am start -n "com.pbs.deliverytrack1/com.pbs.deliverytrack1.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -D
Error while executing: am start -n "com.pbs.deliverytrack1/com.pbs.deliverytrack1.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -D
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.pbs.deliverytrack1/.MainActivity }
Error type 3
Error: Activity class {com.pbs.deliverytrack1/com.pbs.deliverytrack1.MainActivity} does not exist.
Run Code Online (Sandbox Code Playgroud)

在以下部分中说:cmp = com.pbs.deliverytrack1/.MainActivity,那应该是com.pbs.deliverytrack1/com.pbs.deliverytrack1.MainActivity吗?

更新 在搞乱了minSDK,maxSDK和targetSDK,以及三个不同版本的Android:7.0,7.1.1和8.0之后,我找到了继续工作的方法.我的客户端使用7.0和7.1.1,所以我构建了一个运行7.0的模拟器,我一直用它来调试我的应用程序.(事实上​​,我妻子的建议.)所以我再次向前迈进.

在处理怪异问题时,我也会做我通常做的事情.我将使用-XLint并修复我能找到的每个警告.(当你无法修复你想要的bug时,宝贝,修复你得到的bug.)除了清理一些长期未解决的问题,我希望它最终会导致这个bug的挤压.

感谢大家的帮助和建议.我会稍微公开一下,看看有人想出一个奇迹.我更愿意奖励赏金,而不仅仅是让它进入比特桶.:)

所以,我再次谦卑地寻求帮助.谢谢,雷

mtr*_*tha 7

与评论中提到的CommonsWare一样,看起来您的应用程序正在安装,它无法启动.我可以想到要检查的两件事:

  1. 确保您的AndroidManifest.xml文件列出了正确的完全限定类名MainActivity.如果它不正确,那么你的应用程序将安装,但它会在启动时崩溃并抱怨无法找到你的应用程序MainActivity.
  2. 如果您使用的是ProGuard,请检查以确保您的规则已设置好,以便ProGuard不会MainActivity从您的APK 中删除该类.许多开发人员只是ProGuard他们的非调试版本,你提到你的调试版本工作正常,所以这可能是一个提示.
  3. 编辑:我可以想到一个.如果你改变了applicationIddebug buildType,那么你需要在你指定相同ID adb am start的命令.