使用Android Studio 2.2,當我使用調試版本時,在我的應用程序中切換活動很有效。但是,當我將應用程序發佈到Google Play時,我可以打開應用程序,但嘗試啓動任何其他活動(通過Intent)會使應用程序崩潰。Android relase APK無法加載活動
的build.gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 24
buildToolsVersion "24.0.1"
defaultConfig {
applicationId "net.ddns.opencratebox.mycratebox"
minSdkVersion 15
targetSdkVersion 24
versionCode 5
versionName "0.0.5"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
packagingOptions {
exclude 'META-INF/ASL2.0'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:24.2.1'
compile 'org.codehaus.jackson:jackson-mapper-asl:1.9.13'
compile 'com.google.firebase:firebase-ads:9.4.0'
compile 'com.google.android.gms:play-services-ads:9.4.0'
compile 'com.firebase:firebase-client-android:2.3.1'
}
apply plugin: 'com.google.gms.google-services'
清單:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="net.ddns.opencratebox.mycratebox">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="MyCrateBox"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".source.MVC.View.LaunchActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".source.MVC.View.RegisterActivity" />
<activity android:name=".source.MVC.View.LoggedActivity" />
</application>
</manifest>
我要求的唯一權限是INTERNET,我宣佈它。無論如何,這與開始活動無關。我不知道發生了什麼,因爲調試版本工作得非常好(通過USB電纜直接從android工作室安裝到我的平板電腦)許多朋友也嘗試過,結果相同。
因此,如果我通過Google Play安裝它,它將無法正常工作,但如果通過Android Studio中的USB安裝,則無法正常工作。
任何人有一個想法?
P.S.已經試圖把minifyEnabled假,沒有結果:(我聽說Proguard的可以刪除構造或一段代碼,類似的東西
編輯墜機事件的 堆棧跟蹤:
09-19 20:42:55.127 31614-31614/E/AndroidRuntime:致命異常:主 工藝:
net.ddns.opencratebox.mycratebox,PID:31614 java.lang.IllegalStateException:找不到方法 registerView(查看)中爲Android父母或祖先背景:在android.support.v7.app.AppCompatViewInflater $ DeclaredOnClickListener.resolveMethod上視圖類 android.support.v7.widget.AppCompatTextView ID爲「txvc_register」 的onClick 屬性定義(AppCompatViewInflater.java:327) at android.support.v7.app.AppCompatViewInflater $ DeclaredOnClickListener.onClick(AppCompatViewInflater.java:284) at android.view.View.performClick(View.java:5280) at android.view .View $ PerformClick.run(View.java:21239) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:234) at android.app.ActivityThread.main(ActivityThread.java:5526) at java.lang.reflect.Method.invoke(Native Method) at com。 android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit。Java的:616)
應該開始其他活動代碼:
protected void registerView(View view) {
Intent intent = new Intent(this, RegisterActivity.class);
startActivity(intent);
}
表示點擊按鈕的XML:
<TextView
android:id="@+id/txvc_register"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/btn_register"
android:layout_centerHorizontal="true"
android:layout_marginTop="42dp"
android:clickable="true"
android:linksClickable="false"
android:onClick="registerView"
android:text="@string/or_register"
android:textColor="@color/abc_btn_colored_borderless_text_material" />
在上傳到Play商店之前,您是否測試了發行版apk? –
你可以使用adb install -r myapp.apk安裝發佈應用程序,並連接調試器並檢查logcat,你將得到有關它崩潰的信息。 – surya
我測試了apk,但在第一次發佈後(不知道我們可以做到這一點),我會嘗試一下,surya謝謝你! – Cratebox99