【问题标题】:App crashes while debugging, after installed Android 6.0.1安装 Android 6.0.1 后,应用程序在调试时崩溃
【发布时间】:2016-07-28 09:56:42
【问题描述】:

这听起来可能很奇怪。我是一名初学者,现在我正在制作一个具有登录/注册活动的应用程序。它在三星 Galaxy S3(Android 版本 4.3)上运行良好,但一周前我安装了 CyanogenMod,现在我有了 Android 版本 6.0.1。

问题出在这里 - 如果我运行应用程序,它会打开一个弹出警报“不幸的是,MyFirstApp 已停止。”,并且然后当我单击 OK 按钮时,它会打开登录窗口,就像它应该的那样。在我尝试输入凭据以登录或注册后,它显示我的默认错误消息,即它无法连接到服务器。我在第二部手机上试过这个,同样型号的三星 Galaxy S3,但在 Android 4.3 上运行没有问题。

我尝试调试应用程序,但它立即崩溃,并显示控制台消息:

Connected to the target VM, address: 'localhost:8613', transport: 'socket'
Disconnected from the target VM, address: 'localhost:8613', transport: 'socket'

我的应用配置:

// Default configuration emulator/device urls
// private static String base_URL = "http://10.0.2.2/myfirstapp/";
private static String base_URL = "http://192.168.0.103/myfirstapp/";

// Server user login url
public static String URL_LOGIN = base_URL + "login.php";

// Server user register url
public static String URL_REGISTER = base_URL + "register.php";

我已在手机上启用调试。

事件日志:

12:03:55 Executing tasks: [:app:incrementalDebugSupportDex]
12:03:56 Gradle build finished in 1s 375ms

控制台:

07/28 12:03:56: Launching app
No local changes, not deploying APK
$ adb shell am start -D -n "mcvc.kemo.myfirstapp/mcvc.kemo.myfirstapp.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Waiting for application to come online: mcvc.kemo.myfirstapp | mcvc.kemo.myfirstapp.test
Waiting for application to come online: mcvc.kemo.myfirstapp | mcvc.kemo.myfirstapp.test
Waiting for application to come online: mcvc.kemo.myfirstapp | mcvc.kemo.myfirstapp.test
Waiting for application to come online: mcvc.kemo.myfirstapp | mcvc.kemo.myfirstapp.test
Connecting to mcvc.kemo.myfirstapp
Connected to the target VM, address: 'localhost:8609', transport: 'socket'
// Here I click on the OK button when popup says it stopped working
Disconnected from the target VM, address: 'localhost:8609', transport: 'socket'

清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="mcvc.kemo.myfirstapp">

<permission
    android:name="devncode.kemo.myfirstapp.permission.MAPS_RECEIVE"
    android:protectionLevel="signature" />

<uses-permission android:name="devncode.kemo.myfirstapp.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />

<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />

<permission
    android:name="com.example.gcm.permission.C2D_MESSAGE"
    android:protectionLevel="signature" />
<uses-permission android:name="com.example.gcm.permission.C2D_MESSAGE" />

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

<uses-feature
    android:glEsVersion="0x00020000"
    android:required="true" />

<application
    android:name=".app.AppController"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">

    <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:screenOrientation="portrait"
        android:theme="@style/AppTheme.NoActionBar">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <!--Login/Register activities-->
    <activity
        android:name=".loginregister.LoginActivity"
        android:theme="@style/AppTheme.Dark" />
    <activity
        android:name=".loginregister.RegisterActivity"
        android:theme="@style/AppTheme.Dark" />

   ...

依赖关系:

  compile 'com.android.support:appcompat-v7:23.1.1' 
  compile 'com.android.support:design:23.1.1' 
  compile 'com.google.android.gms:play-services:8.3.0' 
  compile 'com.jakewharton:butterknife:6.1.0' 
  compile 'de.hdodenhof:circleimageview:1.3.0' 
  compile 'com.mcxiaoke.volley:library-aar:1.0.0'

【问题讨论】:

  • 把你的错误日志放在这里!!!!!!!!!!!!!!!!!!
  • 错误信息是什么意思?
  • @AndriodMechanic 奇怪的是它什么也没说。即使它崩溃了,我的事件日志也是:12:03:55 Executing tasks: [:app:incrementalDebugSupportDex] 12:03:56 Gradle build finished in 1s 375ms
  • 是每次点击应用启动图标还是点击在android studio中运行后都会出现这种情况?
  • @Nir Duran 当我从 android studio 运行它或通过单击图标启动它时,它会显示它停止工作的弹出窗口,然后当我单击确定时它会打开登录窗口,但我无法登录. 当我从 android studio 调试它时,它只是崩溃,没有任何错误消息。

标签: javascript android debugging android-studio cyanogenmod


【解决方案1】:

这里的问题很可能是new Android permission model。从 API 23 (Android 6.0) 开始,您必须在使用所需功能之前直接向用户询问一些权限。因此,您应该以 API 22 或更低版本为目标,或者实现运行时权限。 为了百分百确定导致问题的原因,您应该查看日志(Android Monitor -> logcat,不要忘记清除标签文本框,您也可以选择“错误”级别以仅查看错误)。

【讨论】:

  • 谢谢你的回复 Yurii 我周末试试这个
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多