Ele*_*rks 18 android mdc-components androidx
我正在使用Android P并针对AndroidX进行编译.在debug/beta中运行良好,但是当我发布时,我在运行时遇到了一个神秘的崩溃:
2018-06-24 00:21:26.080 11971-11971 /?E/LoadedApk:无法实例appComponentFactory抛出java.lang.ClassNotFoundException:未找到路径类 "androidx.core.app.CoreComponentFactory":DexPathList [zip文件"/data/app/app.itsyour.elegantstocks-EuVZWdDgzplhm0Hpa90VwA= =/base.apk"],nativeLibraryDirectories = [/数据/应用/ app.itsyour.elegantstocks-EuVZWdDgzplhm0Hpa90VwA ==/LIB/86,/系统/ lib中]在dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:126 )java.lang.ClassLoader.loadClass(ClassLoader.java:379)at java.lang.ClassLoader.loadClass(ClassLoader.java:312)at android.app.LoadedApk.createAppFactory(LoadedApk.java:226)at android.app .LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:731)在android.app.LoadedApk.getClassLoader(LoadedApk.java:772)在android.app.LoadedApk.getResources(LoadedApk.java:994)在android.app.ContextImpl.createAppContext(在android.app.ActivityThread.access $ 1000的android.app.ActivityThread.handleBindApplication(ActivityThread.java:5736)上的ContextImpl.java:2345(Activ)ityThread.java:197)在Android.os.Looper.loop(Looper.java)的android.app.Handler.dispatchMessage(Handler.java:106)上的android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1634) :193)在android.app.ActivityThread.main(ActivityThread.java:6642)at java.lang.reflect.Method.invoke(Native Method)at com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run(RuntimeInit.java) :493)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)2018-06-24 00:21:26.145 1667-1854 /?E/SurfaceFlinger:ro.sf.lcd_density必须定义为构建属性2018-06-24 00:21:26.233 1667-1703 /?E/SurfaceFlinger:ro.sf.lcd_density必须定义为构建属性2018-06-24 00:21:29.627 1796-1913 /?E/TaskPersister:访问最近目录的文件错误(目录不存在?).2018-06-24 00:21:30.087 11971-11971 /?E/AndroidRuntime:FATAL EXCEPTION:main进程:app.itsyour.elegantstocks,PID:11971 java.lang.IllegalArgumentException:指定为非null的参数为null:方法cdbhb,参数$ receiver at app.itsyour.elegantstocks.aba(Unknown资料来源:2)app.itsyour.elegantstocks.feature.navigator.ba $ aa(未知来源:24)at app.itsyour.elegantstocks.feature.navigator.baa(未知来源:13)at app.itsyour.elegantstocks.feature .navigator.baa(未知来源:2)androidx.recyclerview.widget.RecyclerView $ aa(未知来源:0)androidx.recyclerview.widget.RecyclerView $ ab(未知来源:29)androidx.recyclerview.widget.RecyclerView $ pa(未知来源:39)在androidx.recyclerview.widget.RecyclerView $ pa(未知来源:510)在androidx.recyclerview.widget.RecyclerView $ pa(未知来源:5)在androidx.recyclerview.widget.RecyclerView $ pc (未知来源:1)在androidx.recyclerview.widget.LinearLayoutManager $ ca(未知来源:11)在androidx.recyclerview.widget.LinearLayoutManager.a(未知的酸)ce:0)androidx.recyclerview.widget.LinearLayoutManager.a(未知来源:44)在androidx.recyclerview.widget.RecyclerView.O的androidx.recyclerview.widget.LinearLayoutManager.c(未知来源:371)处(未知来源: 42)在androidx.recyclerview.widget.RecyclerView.q(未知来源:41)androidx.recyclerview.widget.RecyclerView.onLayout(未知来源:5)在android.view.View.layout(View.java:20670)at在android.view.View.View的android.widget.FrameLayout.onLayout(FrameLayout.java:261)的android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)的android.view.ViewGroup.layout(ViewGroup.java:6194) .layout(View.java:20670)位于android.view.Viewout上的android.view.Loutout.onLayout(未知来源:66)的android.view.ViewGroup.layout(ViewGroup.java:6194) .java:20670)在Android.widget.FrameLayout.onLayout(FrameLayout.java:261)的android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)的android.view.ViewGroup.layout(ViewGroup.java:6194)在androi 在android.view上的android.view.reshout(浏位于androidx.coordinatorlayout.wout上的android..coout.Loutout.(android.Co.:606),androidx.coordinatorlayout.widget.CoordinatorLayout.(未知来源:143).在androidx.coordinatorlayout.widget.CoordinatorLayout上的android.viewout(View.java:61670). a(未知来源:32)在Android.view.ViewGroup.layout(ViewGroup.java)的android.view.View.layout(View.java:20670)的androidx.coordinatorlayout.widget.CoordinatorLayout.onLayout(未知来源:48) :6194)在android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)的android.widget.FrameLayout.onLayout(FrameLayout.java:261)在android.view.View.layout(View.java:20670)在android .view.ViewGroup.layout(ViewGroup.java:6194)在android.widget.LinearLayout.setChildFrame(LinearLayout.java:1812)在android.widget.LinearLayout.layoutVertical(LinearLayout.java:1656)在android.widget.LinearL 在Android.widget.FrameLayout.layoutChildren(FrameLayout)的android.view.View.layout(ViewGroup.java:6194)的android.view.View.layout(View.java:20670)的ayout.onLayout(LinearLayout.java:1565) .java:323)在android.view.View.Loutout(ViewLayout.java:261)android.view.View.layout(View.java:20670)的android.view.View.layout(ViewGroup.java:6194)上的android.widget.FrameLayout.onLayout(FrameLayout.java:261)在android.widget.LinearLayout.setChildFrame(LinearLayout.java:1812)在android.widget.LinearLayout.layoutVertical(LinearLayout.java:1656)在android.widget.LinearLayout.onLayout(LinearLayout.java:1565)在android.view. View.layout(View.java:20670)在android.view.ViewGroup.layout(ViewGroup.java:6194)在android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)在android.widget.FrameLayout.onLayout(的FrameLayout .java:261)在com.android.internal.policy.DecorView.onLayout(DecorView.java:753)在android.view.View.layout(View.java:20670)2018-06-24 00:21:30.087 11971 -11971 /?E/AndroidRuntime:在Android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2294)的android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2767)的android.view.ViewGroup.layout(ViewGroup.java:6194)处在Android.view.Choreographer $ CallbackRecord.run(Choreographer.java:935)的android.view.ViewRootImpl $ TraversalRunnable.run(ViewRootImpl.java:7130)android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1447) .view.Choreographer.doCallbacks(Choreographer.java:747)位于android.view.Chore上的android.view.Choreographer $ FrameDisplayEventReceiver.run(Choreographer.java:921)的android.view.Choreographer.doFrame(Choreographer.java:682). Handler.handleCallback(Handler.java:873)在Android.os.Handler.dispatchMessage(Handler.java:99)android.app.Looper.loop(Looper.java:193)android.app.ActivityThread.main(ActivityThread) .java:6642)在com.android.i的com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run(RuntimeInit.java:493)的java.lang.reflect.Method.invoke(Native Method)中 nternal.os.ZygoteInit.main(ZygoteInit.java:858)2018-06-24 00:21:30.137 1796-1880 /?E/InputDispatcher:频道'5896582 app.itsyour.elegantstocks/app.itsyour.elegantstocks.feature.navigator.NavigatorActivity(server)'〜频道无法恢复,将被丢弃!2018-06-24 00:21:30.253 5198-9377 /?E/EntrySyncManager:无法确定帐户名称:删除请求2018-06-24 00:21:30.253 5198-9377 /?E/NowController:无法从EntryProvider访问数据.为ExecutionException.java.util.concurrent.ExecutionException:com.google.android.apps.gsa.sidekick.main.hn:无法完成刷新条目的计划请求.ClientErrorCode:3位于com.google.common.util.concurrent.d.eA(SourceFile:85),位于com.google.common.util.concurrent.d.get(SourceFile:23)com.google.common.util. concurrent.l.get(SourceFile:2)at com.google.android.apps.gsa.staticplugins.nowstream.babe.caI(SourceFile:47)at com.google.android.apps.gsa.staticplugins.nowstream.babe. ca.(SourceFile:176)com.google.android.apps.gss.staticplugins.nowstream.babh.run(未知来源:2)com.google.android.apps.gsa.shared.util.concurrent.at.run (SourceFile:4)at java.util.concurrent.Executors $ runnableAdapter.call(Executors.java:458)at java.util.concurrent.FutureTask.run(FutureTask.java:266)at java.util.concurrent.Executors $在run.able.android.apps.gss.gsa. )com.google.android.apps.gss..sared.util.concurrent.b.aw.run(SourceFile:4)com.google.android.apps.gsa.shared.util.concurrent.b.aw.run上的com.google.android.apps.gsa.shared.util.concurrent.b.aw.run (源码 eFile:4)java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:641)at java.lang.Thread.run(Thread) .java:764)在com.google.android.apps.gsa.shared.util.concurrent.birun(SourceFile:6)引起:com.google.android.apps.gsa.sidekick.main.hn:无法完成计划刷新条目的请求.ClientErrorCode:3 com.google.and上的com.google.android.apps.gsa.staticplugins.nowstream.baaq.az(未知来源:4)com.google.common.util.concurrent.q.ap(SourceFile:7) .common.util.concurrent.p.run(SourceFile:32)at com.google.common.util.concurrent.bt.execute(SourceFile:3)at com.google.common.util.concurrent.db(SourceFile:275) )com.google.com上的com.google.com.util.concurrent.pb(SourceFile:3)中的com.google.common.util.concurrent.d.addListener(SourceFile:135),位于com.google.android.apps.gsa.shared. util.concurrent.ha(SourceFile:16)位于com.google.android.apps.gss..saticplugins.nowstream.babe的com.google.android.apps.gsa.shared.util.concurrent.ha(SourceFile:13). caI(SourceFile:45)at com.google.android.apps.gsa.staticplugins.nowstream.babe.caH(SourceFile:176)at com.google.android.apps.gsa.staticplugins.nowstream.babh.run(Unknown Source :2)在Java的java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:458)的com.google.android.apps.gsa.shared.util.concurrent.at.run(SourceFile:4)中. UTIL java.util.concurrent.Executors上的.concurrent.FutureTask.run(FutureTask.java:266)$ java.util.concurrent.FutureTask.run(FutureTask.java:266)中的$ RunnableAdapter.call(Executors.java:458)来自com.google.android.apps.gsa.shared.util.concurrent.b.aw.run的com.google.android.apps.gsa.shared.util.concurrent.bgrun(未知来源:4)(SourceFile:4)来自java.util.concurrent的java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)的com.google.android.apps.gsa.shared.util.concurrent.b.aw.run(SourceFile:4) .ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:641)at java.lang.Thread.run(Thread.java:764)at com.google.android.apps.gsa.shared.util.concurrent.birun(SourceFile:6 )
我的gradle文件.项目gradle:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
ext {
androidXVersion = '1.0.0-alpha3'
supportLibraryVersion = '28.0.0-alpha1'
}
buildscript {
ext.kotlin_version = '1.2.50'
repositories {
google()
jcenter()
maven {
url "https://maven.google.com"
}
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.0-beta01'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects
{
repositories {
google()
jcenter()
maven { url 'https://jitpack.io' }
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
Run Code Online (Sandbox Code Playgroud)
应用程序gradle:
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
def versionMajor = 1
def versionMinor = 0
def versionPatch = project.hasProperty('buildNumber') ? project.getProperties().get('buildNumber').toInteger() : 0
android {
compileSdkVersion 28
defaultConfig {
applicationId "app.itsyour.elegantstocks"
minSdkVersion 25
targetSdkVersion 28
// Version
versionName "${versionMajor}.${versionMinor}.${versionPatch}"
versionCode versionMajor * 1000000 * versionMinor * 10000 + versionPatch
resValue "string", "build_number", "Version ${versionName}"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
kapt {
arguments {
arg("room.schemaLocation", "$projectDir/schemas".toString())
}
}
}
buildTypes {
release {
resValue "string", "app_name", "Elegant Stocks"
signingConfig signingConfigs.release
shrinkResources true
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules-release.pro'
}
staging {
resValue "string", "app_name", "Elegant Stocks"
signingConfig signingConfigs.staging
shrinkResources true
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules-staging.pro'
}
beta {
signingConfig signingConfigs.beta
debuggable true
minifyEnabled false
applicationIdSuffix ".beta"
versionNameSuffix "-BETA"
resValue "string", "app_name", "Elegant Stocks Beta"
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules-beta.pro'
}
debug {
debuggable true
minifyEnabled false
resValue "string", "app_name", "Elegant Stocks Debug"
applicationIdSuffix ".debug"
versionNameSuffix = "-DEBUG"
}
}
compileOptions {
targetCompatibility JavaVersion.VERSION_1_8
sourceCompatibility JavaVersion.VERSION_1_8
}
testOptions {
unitTests {
includeAndroidResources = true
all {
testLogging {
events "passed", "failed", "skipped"
}
}
}
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation "androidx.appcompat:appcompat:$androidXVersion"
implementation "androidx.fragment:fragment-ktx:$androidXVersion"
implementation "com.google.android.material:material:$androidXVersion"
implementation "androidx.recyclerview:recyclerview:$androidXVersion"
implementation "androidx.core:core-ktx:$androidXVersion"
implementation 'androidx.constraintlayout:constraintlayout:1.1.2'
// Dagger 2
implementation 'com.google.dagger:dagger:2.16'
implementation 'com.google.dagger:dagger-android:2.16'
implementation 'com.google.dagger:dagger-android-support:2.16'
kapt 'com.google.dagger:dagger-compiler:2.16'
kapt 'com.google.dagger:dagger-android-processor:2.16'
// Retrofit
implementation 'com.squareup.retrofit2:retrofit:2.4.0'
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.3.0'
implementation 'com.squareup.retrofit2:converter-gson:2.3.0'
implementation 'com.squareup.okhttp3:logging-interceptor:3.8.0'
// Stetho
implementation 'com.facebook.stetho:stetho:1.5.0'
implementation 'com.facebook.stetho:stetho-okhttp3:1.5.0'
// Rx
implementation 'io.reactivex.rxjava2:rxjava:2.1.13'
implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'
implementation 'io.reactivex.rxjava2:rxkotlin:2.2.0'
implementation 'com.jakewharton.rxbinding2:rxbinding-kotlin:2.1.1'
implementation 'com.jakewharton.rxbinding2:rxbinding-appcompat-v7-kotlin:2.1.1'
implementation 'com.jakewharton.rx2:replaying-share:2.0.1'
// Room
implementation "androidx.room:room-runtime:2.0.0-alpha1"
implementation "androidx.room:room-rxjava2:2.0.0-alpha1"
kapt "androidx.room:room-compiler:2.0.0-alpha1"
// Logging
implementation 'com.jakewharton.timber:timber:4.7.0'
// Time
implementation 'com.jakewharton.threetenabp:threetenabp:1.1.0'
// UI
implementation 'com.github.PhilJay:MPAndroidChart:v3.0.3'
implementation 'net.opacapp:multiline-collapsingtoolbar:27.1.1'
implementation 'com.balysv:material-ripple:1.0.2'
// Testing
androidTestImplementation "com.android.support.test:runner:1.0.2"
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha3'
testImplementation 'junit:junit:4.12'
testImplementation "org.jetbrains.kotlin:kotlin-test-junit:${kotlin_version}"
testImplementation "com.nhaarman:mockito-kotlin-kt1.1:1.5.0"
testImplementation "org.mockito:mockito-core:2.18.3"
testImplementation "org.robolectric:robolectric:3.8"
testImplementation "org.robolectric:shadows-multidex:3.8"
}
Run Code Online (Sandbox Code Playgroud)
Proguard的:
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
-dontwarn okhttp3.**
-dontwarn okio.**
-dontwarn org.codehaus.mojo.animal_sniffer.**
-dontwarn javax.annotation.**
-dontwarn org.conscrypt.**
Run Code Online (Sandbox Code Playgroud)
Shm*_*uel 28
添加-keep class androidx.core.app.CoreComponentFactory { *; }到您的proguard配置,以便不会推出此类
| 归档时间: |
|
| 查看次数: |
13301 次 |
| 最近记录: |