diff --git a/app/build.gradle b/app/build.gradle index 0be48cbec..7e90d9ff5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -117,9 +117,7 @@ android { targetCompatibility JavaVersion.VERSION_11 } packagingOptions { - resources { - excludes += ['META-INF/INDEX.LIST'] - } + resources.excludes.add('META-INF/*') } sourceSets { @@ -203,7 +201,7 @@ dependencies { //JS rhino //implementation('com.github.gedoor:rhino-android:1.8') - implementation(fileTree(dir: 'lib', include: ['rhino-*.jar'])) + implementation(project(path: ':rhino')) //网络 implementation('com.squareup.okhttp3:okhttp:4.10.0') diff --git a/app/lib/rhino-1.7.14-1.jar b/app/lib/rhino-1.7.14-1.jar deleted file mode 100644 index 8dedf14ff..000000000 Binary files a/app/lib/rhino-1.7.14-1.jar and /dev/null differ diff --git a/rhino/.gitignore b/rhino/.gitignore new file mode 100644 index 000000000..42afabfd2 --- /dev/null +++ b/rhino/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/rhino/build.gradle b/rhino/build.gradle new file mode 100644 index 000000000..db83629b2 --- /dev/null +++ b/rhino/build.gradle @@ -0,0 +1,36 @@ +plugins { + id 'com.android.library' +} + +android { + compileSdk = compile_sdk_version + buildToolsVersion = build_tool_version + namespace 'com.script' + defaultConfig { + minSdk 21 + targetSdk 33 + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + consumerProguardFiles "consumer-rules.pro" + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + lint { + checkDependencies true + } +} + +dependencies { + compileOnly "com.android.tools.build:gradle:$agp_version" + api(fileTree(dir: 'lib', include: ['rhino-*.jar'])) +} \ No newline at end of file diff --git a/rhino/consumer-rules.pro b/rhino/consumer-rules.pro new file mode 100644 index 000000000..e69de29bb diff --git a/rhino/lib/rhino-1.7.13-1.jar b/rhino/lib/rhino-1.7.13-1.jar new file mode 100644 index 000000000..1f490006e Binary files /dev/null and b/rhino/lib/rhino-1.7.13-1.jar differ diff --git a/rhino/proguard-rules.pro b/rhino/proguard-rules.pro new file mode 100644 index 000000000..6ef89028c --- /dev/null +++ b/rhino/proguard-rules.pro @@ -0,0 +1,26 @@ +# 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 + +## Rhino +-keep class javax.script.** { *; } +-keep class com.sun.script.javascript.** { *; } +-keep class org.mozilla.javascript.** { *; } \ No newline at end of file diff --git a/rhino/src/main/AndroidManifest.xml b/rhino/src/main/AndroidManifest.xml new file mode 100644 index 000000000..44008a433 --- /dev/null +++ b/rhino/src/main/AndroidManifest.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/app/src/main/java/com/script/AbstractScriptEngine.java b/rhino/src/main/java/com/script/AbstractScriptEngine.java similarity index 100% rename from app/src/main/java/com/script/AbstractScriptEngine.java rename to rhino/src/main/java/com/script/AbstractScriptEngine.java diff --git a/app/src/main/java/com/script/Bindings.java b/rhino/src/main/java/com/script/Bindings.java similarity index 100% rename from app/src/main/java/com/script/Bindings.java rename to rhino/src/main/java/com/script/Bindings.java diff --git a/app/src/main/java/com/script/Compilable.java b/rhino/src/main/java/com/script/Compilable.java similarity index 100% rename from app/src/main/java/com/script/Compilable.java rename to rhino/src/main/java/com/script/Compilable.java diff --git a/app/src/main/java/com/script/CompiledScript.java b/rhino/src/main/java/com/script/CompiledScript.java similarity index 100% rename from app/src/main/java/com/script/CompiledScript.java rename to rhino/src/main/java/com/script/CompiledScript.java diff --git a/app/src/main/java/com/script/Invocable.java b/rhino/src/main/java/com/script/Invocable.java similarity index 100% rename from app/src/main/java/com/script/Invocable.java rename to rhino/src/main/java/com/script/Invocable.java diff --git a/app/src/main/java/com/script/ScriptContext.java b/rhino/src/main/java/com/script/ScriptContext.java similarity index 100% rename from app/src/main/java/com/script/ScriptContext.java rename to rhino/src/main/java/com/script/ScriptContext.java diff --git a/app/src/main/java/com/script/ScriptEngine.java b/rhino/src/main/java/com/script/ScriptEngine.java similarity index 100% rename from app/src/main/java/com/script/ScriptEngine.java rename to rhino/src/main/java/com/script/ScriptEngine.java diff --git a/app/src/main/java/com/script/ScriptException.java b/rhino/src/main/java/com/script/ScriptException.java similarity index 100% rename from app/src/main/java/com/script/ScriptException.java rename to rhino/src/main/java/com/script/ScriptException.java diff --git a/app/src/main/java/com/script/SimpleBindings.java b/rhino/src/main/java/com/script/SimpleBindings.java similarity index 100% rename from app/src/main/java/com/script/SimpleBindings.java rename to rhino/src/main/java/com/script/SimpleBindings.java diff --git a/app/src/main/java/com/script/SimpleScriptContext.java b/rhino/src/main/java/com/script/SimpleScriptContext.java similarity index 100% rename from app/src/main/java/com/script/SimpleScriptContext.java rename to rhino/src/main/java/com/script/SimpleScriptContext.java diff --git a/app/src/main/java/com/script/rhino/ExternalScriptable.java b/rhino/src/main/java/com/script/rhino/ExternalScriptable.java similarity index 100% rename from app/src/main/java/com/script/rhino/ExternalScriptable.java rename to rhino/src/main/java/com/script/rhino/ExternalScriptable.java diff --git a/app/src/main/java/com/script/rhino/InterfaceImplementor.java b/rhino/src/main/java/com/script/rhino/InterfaceImplementor.java similarity index 100% rename from app/src/main/java/com/script/rhino/InterfaceImplementor.java rename to rhino/src/main/java/com/script/rhino/InterfaceImplementor.java diff --git a/app/src/main/java/com/script/rhino/JSAdapter.java b/rhino/src/main/java/com/script/rhino/JSAdapter.java similarity index 100% rename from app/src/main/java/com/script/rhino/JSAdapter.java rename to rhino/src/main/java/com/script/rhino/JSAdapter.java diff --git a/app/src/main/java/com/script/rhino/JavaAdapter.java b/rhino/src/main/java/com/script/rhino/JavaAdapter.java similarity index 100% rename from app/src/main/java/com/script/rhino/JavaAdapter.java rename to rhino/src/main/java/com/script/rhino/JavaAdapter.java diff --git a/app/src/main/java/com/script/rhino/RhinoClassShutter.java b/rhino/src/main/java/com/script/rhino/RhinoClassShutter.java similarity index 100% rename from app/src/main/java/com/script/rhino/RhinoClassShutter.java rename to rhino/src/main/java/com/script/rhino/RhinoClassShutter.java diff --git a/app/src/main/java/com/script/rhino/RhinoCompiledScript.java b/rhino/src/main/java/com/script/rhino/RhinoCompiledScript.java similarity index 100% rename from app/src/main/java/com/script/rhino/RhinoCompiledScript.java rename to rhino/src/main/java/com/script/rhino/RhinoCompiledScript.java diff --git a/app/src/main/java/com/script/rhino/RhinoScriptEngine.java b/rhino/src/main/java/com/script/rhino/RhinoScriptEngine.java similarity index 100% rename from app/src/main/java/com/script/rhino/RhinoScriptEngine.java rename to rhino/src/main/java/com/script/rhino/RhinoScriptEngine.java diff --git a/app/src/main/java/com/script/rhino/RhinoTopLevel.java b/rhino/src/main/java/com/script/rhino/RhinoTopLevel.java similarity index 100% rename from app/src/main/java/com/script/rhino/RhinoTopLevel.java rename to rhino/src/main/java/com/script/rhino/RhinoTopLevel.java diff --git a/app/src/main/java/com/script/rhino/RhinoWrapFactory.java b/rhino/src/main/java/com/script/rhino/RhinoWrapFactory.java similarity index 100% rename from app/src/main/java/com/script/rhino/RhinoWrapFactory.java rename to rhino/src/main/java/com/script/rhino/RhinoWrapFactory.java diff --git a/settings.gradle b/settings.gradle index fc8168e71..78925de6f 100644 --- a/settings.gradle +++ b/settings.gradle @@ -28,4 +28,4 @@ dependencyResolutionManagement { } rootProject.name = 'legado' -include ':app',':epublib' +include ':app',':rhino',':epublib'