小编all*_*lla的帖子

使用Kotlin的Instant Run时出现IllegalAccessError

使用Instant Run运行项目后出现此异常:

java.lang.IllegalAccessError:非法类访问:'com.alla.kotlinexample.MainActivity $ override'试图访问'kotlin.jvm.internal.DefaultConstructorMarker'('com.alla.kotlinexample.MainActivity $ override'的声明出现在/ com.alla.kotlinexample
上的 com.alla.kotlinexample.MainActivity $ override.onCreate(MainActivity.kt:21)
中的 data/data/com.alla.kotlinexample/files/instant-run/dex-temp/reload0x0000.dex). MainActivity $ override.access $讯(MainActivity.kt)

这是代码:

class MainActivity : AppCompatActivity() {  

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        setSupportActionBar(toolbar)

        val persons: List<Person> = listOf<Person>(Person("Person1"), Person("Person2", 27))

        fab.setOnClickListener { view ->
            Snackbar.make(view, persons[1].name, Snackbar.LENGTH_LONG)
                    .setAction("Action", null).show()
        }

        tv_person_name.text = persons.maxBy { it.age ?: 34 }.toString()
    }

    data class Person(val name: String, val age: Int? = null)


}
Run Code Online (Sandbox Code Playgroud)

并且错误指向这一行 val persons: List<Person> = listOf<Person>(Person("Person1"), Person("Person2", 27))

Android Studio版本为3.0.1 Gradle: …

android kotlin android-instant-run

10
推荐指数
1
解决办法
997
查看次数

具有AppBundle和数据绑定的ProGuard:IllegalStateException

我有一个带有数据绑定的多模块项目(我使用Android App Bundle),ViewModels。但是,当我启用Proguard该应用程序时,发生以下错误:

java.lang.RuntimeException: Unable to start activity ComponentInfo{...MyActivity}: java.lang.IllegalStateException: DataBindingUtil.setConte… R.layout.my_activity) must not be null

Caused by: java.lang.IllegalStateException: DataBindingUtil.setConte… R.layout.my_activity) must not be null at MyActivity.onCreate(MyActivity.kt:38)

当我删除模块并创建一个app模块时,一切正常。当我禁用时Proguard,它也可以正常工作。这是我的一部分proguard-rules.pro

-dontwarn android.databinding.**
-keep class android.databinding.** { *; }
-keep class com.example.module1.databinding.** { *; }
-keep class com.example.module2.databinding.** { *; }
Run Code Online (Sandbox Code Playgroud)

build.gradle

minifyEnabled true
useProguard true
Run Code Online (Sandbox Code Playgroud)

因此错误指向以下代码行:

val binding: com.example.module1.databinding.MyActivityBinding =
                DataBindingUtil.setContentView(this, R.layout.my_activity)
Run Code Online (Sandbox Code Playgroud)

也许有什么想法如何解决?

android android-databinding android-app-bundle

7
推荐指数
1
解决办法
518
查看次数

RuntimeException(Chromecast)

我尝试配置Chromecast,但得到了RuntimeException并且没有理解原因.这是来自Fabric的日志:

致命异常:java.lang.RuntimeException:无法启动活动ComponentInfo {....activity.TVActivityPhone}:java.lang.RuntimeException:com.google.android.gms.dynamite.DynamiteModule $ zza:远程加载失败.没有发现本地回退.在Android.app.A活动中的android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2677)android.app.A活动.活动(活动传递.) .ActivityThread $ H.handleMessage(ActivityThread.java:1584)在android.app.Loper.loop(Looper.java:194)的android.app.Handler.dispatchMessage(Handler.java:111)android.app.ActivityThread. main(ActivityThread.java:5877)位于java.lang.reflect.Method.invoke(Method.java)的java.lang.reflect.Method.invoke(Method.java:372),位于com.android.internal.os.ZygoteInit com.android.internal.os.ZygoteInit.main(ZygoteInit.java:815)中的$ MethodAndArgsCaller.run(ZygoteInit.java:1020)由java.lang.RuntimeException引起:com.google.android.gms.dynamite.DynamiteModule $ zza:远程加载失败.没有发现本地回退.

这是我的代码:

protected void configureCast() {
        mCastContext = CastContext.getSharedInstance(this); // here I've got RuntimeException
        if(mCastContext != null) mCastSession = mCastContext.getSessionManager().getCurrentCastSession();
        mSessionManagerListener = new CastSessionManagerListener(this);
        mSessionManagerListener.setCastConnectionListener(mCastConnectionListener);
    }
Run Code Online (Sandbox Code Playgroud)

这是build.gradle:

    compile 'com.google.android.gms:play-services-gcm:10.2.0'
    compile 'com.google.android.gms:play-services-analytics:10.2.0'
    compile 'com.google.android.gms:play-services-location:10.2.0'
    compile 'com.google.android.gms:play-services-cast-framework:10.2.0'
Run Code Online (Sandbox Code Playgroud)

有帮助吗?

android runtimeexception chromecast

3
推荐指数
1
解决办法
1477
查看次数