|
[插件开发]
自定义模块在android studio的sdk里正常 loader或正式编译闪退
[复制链接]
应该是依赖问题,但是不知道怎么解决
上传的自定义模块里,如果带上 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);
}
|
|