帖子
帖子
用户
博客
课程
12下一页
返回列表 发新帖
显示全部楼层
8
帖子
0
勋章
108
Y币

[插件开发] 自定义模块在android studio的sdk里正常 loader或正式编译闪退

[复制链接]
发表于 2023-4-11 15:43:53
应该是依赖问题,但是不知道怎么解决

上传的自定义模块里,如果带上 constraintlayout-2.1.4.aar 一起打包,报
java.lang.VerifyError: Verifier rejected class androidx.constraintlayout.widget.ConstraintLayout: androidx.constraintlayout.core.widgets.ConstraintWidget androidx.constraintlayout.widget.ConstraintLayout.getTargetWidget(int) failed to verify: androidx.constraintlayout.core.widgets.ConstraintWidget androidx.constraintlayout.widget.ConstraintLayout.getTargetWidget(int): [0x4]  can't resolve returned type 'Unresolved Reference: androidx.constraintlayout.core.widgets.ConstraintWidget' or 'Unresolved Reference: androidx.constraintlayout.core.widgets.ConstraintWidgetContainer'
androidx.constraintlayout.core.widgets.ConstraintWidget androidx.constraintlayout.widget.ConstraintLayout.getViewWidget(android.view.View) failed to verify: androidx.constraintlayout.core.widgets.ConstraintWidget androidx.constraintlayout.widget.ConstraintLayout.getViewWidget(android.view.View): [0x4]  can't resolve returned type 'Unresolved Reference: androidx.constraintlayout.core.widgets.ConstraintWidget' or 'Unresolved Reference: androidx.constraintlayout.core.widgets.ConstraintWidgetContainer' (declaration of 'androidx.constraintlayout.widget.ConstraintLayout' appears in base.apk)
   at java.lang.reflect.Constructor.newInstance0(Native Method)
   at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
   at android.view.LayoutInflater.createView(LayoutInflater.java:852)
   at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1008)
   at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:959)
   at android.view.LayoutInflater.inflate(LayoutInflater.java:657)
   at android.view.LayoutInflater.inflate(LayoutInflater.java:532)
   at android.view.LayoutInflater.inflate(LayoutInflater.java:479)
   at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:455)
   at android.app.Activity.setContentView(Activity.java:3482)
   at com.ctspt.device.TransparentActivity.onCreate(TransparentActivity.java:24)
   at android.app.Activity.performCreate(Activity.java:8020)
   at android.app.Activity.performCreate(Activity.java:8004)
   at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3464)
   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3643)
   at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
   at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
   at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2105)
   at android.os.Handler.dispatchMessage(Handler.java:106)
   at android.os.Looper.loop(Looper.java:223)
   at android.app.ActivityThread.main(ActivityThread.java:7700)
   at java.lang.reflect.Method.invoke(Native Method)
   at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:612)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:997)

如果不带,则会出现anr,logcat提示
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.ctspt.tmshuttle.check/com.ctspt.device.TransparentActivity}: android.view.InflateException: Binary XML file line #2 in com.ctspt.tmshuttle.check:layout/activity_transparent: Binary XML file line #2 in com.ctspt.tmshuttle.check:layout/activity_transparent: Error inflating class androidx.constraintlayout.widget.ConstraintLayout
   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3491)
   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3643)
   at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
   at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
   at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2105)
   at android.os.Handler.dispatchMessage(Handler.java:106)
   at android.os.Looper.loop(Looper.java:223)
   at android.app.ActivityThread.main(ActivityThread.java:7700)
   at java.lang.reflect.Method.invoke(Native Method)
   at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:612)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:997)
Caused by: android.view.InflateException: Binary XML file line #2 in com.ctspt.tmshuttle.check:layout/activity_transparent: Binary XML file line #2 in com.ctspt.tmshuttle.check:layout/activity_transparent: Error inflating class androidx.constraintlayout.widget.ConstraintLayout
Caused by: android.view.InflateException: Binary XML file line #2 in com.ctspt.tmshuttle.check:layout/activity_transparent: Error inflating class androidx.constraintlayout.widget.ConstraintLayout
Caused by: java.lang.ClassNotFoundException: androidx.constraintlayout.widget.ConstraintLayout
   at java.lang.Class.classForName(Native Method)
   at java.lang.Class.forName(Class.java:454)
   at android.view.LayoutInflater.createView(LayoutInflater.java:813)
   at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1008)
   at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:959)
   at android.view.LayoutInflater.inflate(LayoutInflater.java:657)
   at android.view.LayoutInflater.inflate(LayoutInflater.java:532)
   at android.view.LayoutInflater.inflate(LayoutInflater.java:479)
   at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:455)
   at android.app.Activity.setContentView(Activity.java:3482)
   at com.ctspt.device.TransparentActivity.onCreate(TransparentActivity.java:24)
   at android.app.Activity.performCreate(Activity.java:8020)
   at android.app.Activity.performCreate(Activity.java:8004)
   at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3464)
   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3643)
   at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
   at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
   at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2105)
   at android.os.Handler.dispatchMessage(Handler.java:106)
   at android.os.Looper.loop(Looper.java:223)
   at android.app.ActivityThread.main(ActivityThread.java:7700)
   at java.lang.reflect.Method.invoke(Native Method)
   at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:612)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:997)
Caused by: java.lang.ClassNotFoundException: androidx.constraintlayout.widget.ConstraintLayout
   at java.lang.Class.classForName(Native Method)
   at java.lang.Class.forName(Class.java:454)
   at android.view.LayoutInflater.createView(LayoutInflater.java:813)
   at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1008)
   at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:959)
   at android.view.LayoutInflater.inflate(LayoutInflater.java:657)
   at android.view.LayoutInflater.inflate(LayoutInflater.java:532)
   at android.view.LayoutInflater.inflate(LayoutInflater.java:479)
   at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:455)
   at android.app.Activity.setContentView(Activity.java:3482)
   at com.ctspt.device.TransparentActivity.onCreate(TransparentActivity.java:24)
   at android.app.Activity.performCreate(Activity.java:8020)
   at android.app.Activity.performCreate(Activity.java:8004)
   at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3464)
   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3643)
   at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
   at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
   at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2105)
   at android.os.Handler.dispatchMessage(Handler.java:106)
   at android.os.Looper.loop(Looper.java:223)
   at android.app.ActivityThread.main(ActivityThread.java:7700)
   at java.lang.reflect.Method.invoke(Native Method)
   at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:612)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:997)

两种错误都指向androidx.constraintlayout.widget.ConstraintLayout


build.grade里依赖了这几个,参照论坛帖子说的androidx的应该是不用把constraintlayout-2.1.4.aar放进来的
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
compileOnly files('../app/libs/apiEngine v3.0.0.jar')

出问题的activity的xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas**.**/apk/res/android"
        xmlns:tools="http://schemas**.**/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/activity"
        tools:context=".TransparentActivity" />

AndroidManifest.xml中有关activity的部分
<application>
    <activity
            android:name=".TransparentActivity"
            android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"
            android:launchMode="singleInstance"
            android:exported="false">
        <meta-data
                android:name="android.app.lib_name"
                android:value="" />
    </activity>
</application>
调用activity的方法public void jsmethod_begin(UZModuleContext moduleContext) {
    if (null == callback) callback = moduleContext;
    Intent intent = new Intent(context(), TransparentActivity.class);
    startActivityForResult(intent, ACTIVITY_REQUEST_CODE);
}
activity中初始化部分@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_transparent);

    View view = findViewById(R.id.activity);
    view.setOnLongClickListener(this);
}
130
帖子
7
勋章
5万+
Y币
应该是版本问题
130
帖子
7
勋章
5万+
Y币
用1.1.3版本试试
8
帖子
0
勋章
108
Y币

测试了1.1.3,带constraintlayout-1.1.3.aar和不带constraintlayout-1.1.3.aar的自定义模块,报错是一样的
130
帖子
7
勋章
5万+
Y币
BIP309583 · 2023-4-11 17:41测试了1.1.3,带constraintlayout-1.1.3.aar和不带constraintlayout-1.1.3.aar的自定义模块,报错是一样的

android studio 可以运行吗?
8
帖子
0
勋章
108
Y币
Arly【520707liu】 · 2023-4-11 17:43android studio 可以运行吗?

下载的官方给的那个模块开发SDK,在android studio里打测试包,正常运行
130
帖子
7
勋章
5万+
Y币
BIP309583 · 2023-4-11 17:46下载的官方给的那个模块开发SDK,在android studio里打测试包,正常运行

那as里面是这个constraintlayout-1.1.3.aar版本吗????
130
帖子
7
勋章
5万+
Y币
BIP309583 · 2023-4-11 17:46下载的官方给的那个模块开发SDK,在android studio里打测试包,正常运行

配置androidx 了吗?
8
帖子
0
勋章
108
Y币

as里build.gradle已经改为
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
配置androidx不是很明白,还有一些特殊的地方要设置吗
把这些引用都要改成本地的方式 你上传到云编译是不会有外部引入的
12下一页
您需要登录后才可以回帖 登录

本版积分规则