eleme / Amigo

A hotfix library for Android platform, and not just this...
Other
1.37k stars 213 forks source link

app工程不能单独直接部署吗? #250

Closed panhs closed 7 years ago

panhs commented 7 years ago

部署运行app工程报错,工程已经依赖amigo-lib /Users/admin/Downloads/Amigo-master/app/src/main/java/me/ele/app/amigo/DemoActivity.java:20: 错误: 找不到符号 import me.ele.amigo.Amigo; ^ 符号: 类 Amigo 位置: 程序包 me.ele.amigo /Users/admin/Downloads/Amigo-master/app/src/main/java/me/ele/app/amigo/DemoActivity.java:21: 错误: 程序包me.ele.amigo.compat不存在 import me.ele.amigo.compat.RCompat; ^ /Users/admin/Downloads/Amigo-master/app/src/main/java/me/ele/app/amigo/dev/DevActivity.java:12: 错误: 程序包me.ele.demo不存在 import me.ele.demo.A; ^ /Users/admin/Downloads/Amigo-master/app/src/main/java/me/ele/app/amigo/dev/SubprocessActivity.java:10: 错误: 程序包me.ele.demo不存在 import me.ele.demo.A; ^ /Users/admin/Downloads/Amigo-master/app/src/main/java/me/ele/app/amigo/HomeActivity.java:10: 错误: 找不到符号 import me.ele.amigo.Amigo; ^ 符号: 类 Amigo 位置: 程序包 me.ele.amigo /Users/admin/Downloads/Amigo-master/app/src/main/java/me/ele/app/amigo/HomeActivity.java:12: 错误: 程序包me.ele.demo不存在 import me.ele.demo.A; ^ /Users/admin/Downloads/Amigo-master/app/src/main/java/me/ele/app/amigo/TestPatchedServices.java:15: 错误: 程序包me.ele.amigo.reflect不存在 import me.ele.amigo.reflect.MethodUtils; ^ /Users/admin/Downloads/Amigo-master/app/src/main/java/me/ele/app/amigo/DemoActivity.java:44: 错误: 找不到符号 boolean patchWorked = Amigo.hasWorked(); ^ 符号: 变量 Amigo 位置: 类 DemoActivity /Users/admin/Downloads/Amigo-master/app/src/main/java/me/ele/app/amigo/DemoActivity.java:45: 错误: 找不到符号 Amigo.work(this, patchApkFile); ^ 符号: 变量 Amigo 位置: 类 DemoActivity /Users/admin/Downloads/Amigo-master/app/src/main/java/me/ele/app/amigo/DemoActivity.java:57: 错误: 程序包Amigo不存在 Amigo.workLater(this, patchApkFile, new Amigo.WorkLaterCallback() { ^ /Users/admin/Downloads/Amigo-master/app/src/main/java/me/ele/app/amigo/DemoActivity.java:57: 错误: 找不到符号 Amigo.workLater(this, patchApkFile, new Amigo.WorkLaterCallback() { ^ 符号: 变量 Amigo 位置: 类 DemoActivity /Users/admin/Downloads/Amigo-master/app/src/main/java/me/ele/app/amigo/DemoActivity.java:69: 错误: 找不到符号 Amigo.clear(getApplication()); ^ 符号: 变量 Amigo 位置: 类 DemoActivity /Users/admin/Downloads/Amigo-master/app/src/main/java/me/ele/app/amigo/DemoActivity.java:78: 错误: 找不到符号 mBuilder.setSmallIcon(RCompat.getHostIdentifier(this, R.drawable.ic_ac_grade_lv0)); ^ 符号: 变量 RCompat 位置: 类 DemoActivity /Users/admin/Downloads/Amigo-master/app/src/main/java/me/ele/app/amigo/DemoActivity.java:83: 错误: 找不到符号 Log.e(TAG, "custom_notification id--->" + RCompat.getHostIdentifier(this, ^ 符号: 变量 RCompat 位置: 类 DemoActivity /Users/admin/Downloads/Amigo-master/app/src/main/java/me/ele/app/amigo/DemoActivity.java:86: 错误: 找不到符号 RCompat.getHostIdentifier(this, R.layout.custom_notification)); ^ 符号: 变量 RCompat 位置: 类 DemoActivity /Users/admin/Downloads/Amigo-master/app/src/main/java/me/ele/app/amigo/DemoActivity.java:87: 错误: 找不到符号 contentView.setImageViewResource(RCompat.getHostIdentifier(this, R.id.n_image), ^ 符号: 变量 RCompat 位置: 类 DemoActivity /Users/admin/Downloads/Amigo-master/app/src/main/java/me/ele/app/amigo/DemoActivity.java:88: 错误: 找不到符号 RCompat.getHostIdentifier(this, R.drawable.ic_account_mobile)); ^ 符号: 变量 RCompat 位置: 类 DemoActivity /Users/admin/Downloads/Amigo-master/app/src/main/java/me/ele/app/amigo/DemoActivity.java:89: 错误: 找不到符号 contentView.setTextViewText(RCompat.getHostIdentifier(this, R.id.n_text), ^ 符号: 变量 RCompat 位置: 类 DemoActivity /Users/admin/Downloads/Amigo-master/app/src/main/java/me/ele/app/amigo/DemoActivity.java:91: 错误: 找不到符号 contentView.setTextColor(RCompat.getHostIdentifier(this, R.id.n_text), ^ 符号: 变量 RCompat 位置: 类 DemoActivity /Users/admin/Downloads/Amigo-master/app/src/main/java/me/ele/app/amigo/dev/DevActivity.java:28: 错误: 找不到符号 Toast.makeText(this, A.loadAsset(getApplication()), Toast.LENGTH_LONG).show(); ^ 符号: 变量 A 位置: 类 DevActivity /Users/admin/Downloads/Amigo-master/app/src/main/java/me/ele/app/amigo/dev/SubprocessActivity.java:30: 错误: 找不到符号 .append(A.getDes()); ^ 符号: 变量 A 位置: 类 SubprocessActivity /Users/admin/Downloads/Amigo-master/app/src/main/java/me/ele/app/amigo/HomeActivity.java:32: 错误: 找不到符号 Log.e(TAG, "version code from host-->" + Amigo.getHostPackageInfo(this, 0).versionCode); ^ 符号: 变量 Amigo 位置: 类 HomeActivity /Users/admin/Downloads/Amigo-master/app/src/main/java/me/ele/app/amigo/HomeActivity.java:34: 错误: 找不到符号 infoView.setText(A.getDes()); ^ 符号: 变量 A 位置: 类 HomeActivity /Users/admin/Downloads/Amigo-master/app/src/main/java/me/ele/app/amigo/TestPatchedServices.java:57: 错误: 找不到符号

JackCho commented 7 years ago

gradle:app:runHost, gralde:app:preparePatch

不要直接使用gradle assembleDebug,有flavor

zacklpx commented 7 years ago

@JackCho 我也是同样的问题,用的gradle :app:runHost也一样

JackCho commented 7 years ago

@zacklpx demo跑的起来么?

panhs commented 7 years ago

@JackCho 群主,执行task的时候还是报找不到类,是什么原因呢? 执行./gradlew runHost 这种是app直接依赖amigo_lib的方式吧 目前cmake依赖的c/C++编译都是苹果自带的,可以正常make

JackCho commented 7 years ago

runHost,你不能直接直接gralde assembleDebug,你本地可以运行gradle assembleHost, host是app的flavor

task runHost(dependsOn: "assembleHost") << {
  | deletePatchApk()
  | runCmd("adb uninstall ${getPkg()}")
  | runCmd("adb install -r ${getHostApk()}")
  | launch()
  | }
 
zacklpx commented 7 years ago

@JackCho 你好,我是clone项目后,根目录运行./gradlew :app:runHost,会报错,找不到依赖amigo_lib相关类,以下是完整信息(执行./gradlew :app:assembleHost也是一样的报错):

# ./gradlew :app:runHost

Parallel execution is an incubating feature.
java.io.FileNotFoundException: /Users/zack/GitWorkspace/Amigo/buildSrc/local.properties (No such file or directory)
org.gradle.api.resources.MissingResourceException: Could not read script '/Users/zack/GitWorkspace/Amigo/buildSrc/mybuild.gradle' as it does not exist.
:buildSrc:compileJava UP-TO-DATE
:buildSrc:compileGroovy UP-TO-DATE
:buildSrc:processResources UP-TO-DATE
:buildSrc:classes UP-TO-DATE
:buildSrc:jar UP-TO-DATE
:buildSrc:sourcesJar UP-TO-DATE
:buildSrc:assemble UP-TO-DATE
:buildSrc:compileTestJava UP-TO-DATE
:buildSrc:compileTestGroovy UP-TO-DATE
:buildSrc:processTestResources UP-TO-DATE
:buildSrc:testClasses UP-TO-DATE
:buildSrc:test UP-TO-DATE
:buildSrc:check UP-TO-DATE
:buildSrc:build UP-TO-DATE
org.gradle.api.resources.MissingResourceException: Could not read script '/Users/zack/GitWorkspace/Amigo/amigo-lib/mybuild.gradle' as it does not exist.
The JavaCompile.setDependencyCacheDir() method has been deprecated and is scheduled to be removed in Gradle 4.0.
Incremental java compilation is an incubating feature.
The TaskInputs.source(Object) method has been deprecated and is scheduled to be removed in Gradle 4.0. Please use TaskInputs.file(Object).skipWhenEmpty() instead.
The Task.leftShift(Closure) method has been deprecated and is scheduled to be removed in Gradle 5.0. Please use Task.doLast(Action) instead.
        at build_cw5rgv3f64mnscra759q4vji2.run(/Users/zack/GitWorkspace/Amigo/app/build.gradle:136)
check instant run
check instant run
check instant run
check instant run
:app:preBuild UP-TO-DATE
:app:preHostBuild UP-TO-DATE
:app:checkHostManifest
:app:preDebugBuild UP-TO-DATE
:app:prePatchBuild UP-TO-DATE
:app:preReleaseBuild UP-TO-DATE
:app:prepareComAndroidSupportAnimatedVectorDrawable2340Library
:app:prepareComAndroidSupportAppcompatV72340Library
:app:prepareComAndroidSupportDesign2340Library
:app:preDebugAndroidTestBuild UP-TO-DATE
:app:prepareComAndroidSupportMultidex101Library
:app:prepareComAndroidSupportRecyclerviewV72340Library
:app:prepareComAndroidSupportSupportV42340Library
:app:prepareComAndroidSupportSupportVectorDrawable2340Library
:app:prepareHostDependencies
:app:compileHostAidl
:app:compileHostRenderscript
:app:generateHostBuildConfig
:app:generateHostResValues
:app:generateHostResources
:app:mergeHostResources
:app:processHostManifest
/Users/zack/GitWorkspace/Amigo/app/src/host/AndroidManifest.xml:5:5-11:19 Warning:
        application@android:icon was tagged at AndroidManifest.xml:5 to replace other declarations but no other declaration present
generateCodeTask: generateHostApplicationInfo execute
:app:processHostResources
:app:generateHostSources
:app:incrementalHostJavaCompilationSafeguard
:app:compileHostJavaWithJavac
/Users/zack/GitWorkspace/Amigo/app/src/main/java/me/ele/app/amigo/DemoActivity.java:20: error: cannot find symbol
import me.ele.amigo.Amigo;
                   ^
  symbol:   class Amigo
  location: package me.ele.amigo
/Users/zack/GitWorkspace/Amigo/app/src/main/java/me/ele/app/amigo/DemoActivity.java:21: error: package me.ele.amigo.compat does not exist
import me.ele.amigo.compat.RCompat;
                          ^
/Users/zack/GitWorkspace/Amigo/app/src/main/java/me/ele/app/amigo/HomeActivity.java:10: error: cannot find symbol
import me.ele.amigo.Amigo;
                   ^
  symbol:   class Amigo
  location: package me.ele.amigo
/Users/zack/GitWorkspace/Amigo/app/src/main/java/me/ele/app/amigo/TestPatchedServices.java:15: error: package me.ele.amigo.reflect does not exist
import me.ele.amigo.reflect.MethodUtils;
                           ^
/Users/zack/GitWorkspace/Amigo/app/src/main/java/me/ele/app/amigo/DemoActivity.java:44: error: cannot find symbol
        boolean patchWorked = Amigo.hasWorked();
                              ^
  symbol:   variable Amigo
  location: class DemoActivity
/Users/zack/GitWorkspace/Amigo/app/src/main/java/me/ele/app/amigo/DemoActivity.java:45: error: cannot find symbol
        Amigo.work(this, patchApkFile);
        ^
  symbol:   variable Amigo
  location: class DemoActivity
/Users/zack/GitWorkspace/Amigo/app/src/main/java/me/ele/app/amigo/DemoActivity.java:57: error: package Amigo does not exist
        Amigo.workLater(this, patchApkFile, new Amigo.WorkLaterCallback() {
                                                     ^
/Users/zack/GitWorkspace/Amigo/app/src/main/java/me/ele/app/amigo/DemoActivity.java:57: error: cannot find symbol
        Amigo.workLater(this, patchApkFile, new Amigo.WorkLaterCallback() {
        ^
  symbol:   variable Amigo
  location: class DemoActivity
/Users/zack/GitWorkspace/Amigo/app/src/main/java/me/ele/app/amigo/DemoActivity.java:69: error: cannot find symbol
        Amigo.clear(getApplication());
        ^
  symbol:   variable Amigo
  location: class DemoActivity
/Users/zack/GitWorkspace/Amigo/app/src/main/java/me/ele/app/amigo/DemoActivity.java:78: error: cannot find symbol
        mBuilder.setSmallIcon(RCompat.getHostIdentifier(this, R.drawable.ic_ac_grade_lv0));
                              ^
  symbol:   variable RCompat
  location: class DemoActivity
/Users/zack/GitWorkspace/Amigo/app/src/main/java/me/ele/app/amigo/DemoActivity.java:83: error: cannot find symbol
        Log.e(TAG, "custom_notification id--->" + RCompat.getHostIdentifier(this,
                                                  ^
  symbol:   variable RCompat
  location: class DemoActivity
/Users/zack/GitWorkspace/Amigo/app/src/main/java/me/ele/app/amigo/DemoActivity.java:86: error: cannot find symbol
                RCompat.getHostIdentifier(this, R.layout.custom_notification));
                ^
  symbol:   variable RCompat
  location: class DemoActivity
/Users/zack/GitWorkspace/Amigo/app/src/main/java/me/ele/app/amigo/DemoActivity.java:87: error: cannot find symbol
        contentView.setImageViewResource(RCompat.getHostIdentifier(this, R.id.n_image),
                                         ^
  symbol:   variable RCompat
  location: class DemoActivity
/Users/zack/GitWorkspace/Amigo/app/src/main/java/me/ele/app/amigo/DemoActivity.java:88: error: cannot find symbol
                RCompat.getHostIdentifier(this, R.drawable.ic_account_mobile));
                ^
  symbol:   variable RCompat
  location: class DemoActivity
/Users/zack/GitWorkspace/Amigo/app/src/main/java/me/ele/app/amigo/DemoActivity.java:89: error: cannot find symbol
        contentView.setTextViewText(RCompat.getHostIdentifier(this, R.id.n_text),
                                    ^
  symbol:   variable RCompat
  location: class DemoActivity
/Users/zack/GitWorkspace/Amigo/app/src/main/java/me/ele/app/amigo/DemoActivity.java:91: error: cannot find symbol
        contentView.setTextColor(RCompat.getHostIdentifier(this, R.id.n_text),
                                 ^
  symbol:   variable RCompat
  location: class DemoActivity
/Users/zack/GitWorkspace/Amigo/app/src/main/java/me/ele/app/amigo/HomeActivity.java:32: error: cannot find symbol
        Log.e(TAG, "version code from host-->" + Amigo.getHostPackageInfo(this, 0).versionCode);
                                                 ^
  symbol:   variable Amigo
  location: class HomeActivity
/Users/zack/GitWorkspace/Amigo/app/src/main/java/me/ele/app/amigo/TestPatchedServices.java:57: error: cannot find symbol
                Log.e(TAG, "random number from service" + MethodUtils.invokeMethod(s,
                                                          ^
  symbol: variable MethodUtils
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: /Users/zack/GitWorkspace/Amigo/app/src/main/java/me/ele/app/amigo/TestPatchedServices.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
18 errors
:app:compileHostJavaWithJavac FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:compileHostJavaWithJavac'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 3.943 secs