将代码从 Eclipse 移植到 Android Studio 时出错
Posted
技术标签:
【中文标题】将代码从 Eclipse 移植到 Android Studio 时出错【英文标题】:Getting Error during while porting code from Eclipse to Android Studio 【发布时间】:2018-09-28 12:18:54 【问题描述】:我正在尝试将我的旧项目代码从 eclipse 移动到 android Studio,我已经成功了,我正面临这个项目的问题。 下面是我的 gradle 文件。
apply plugin: 'com.android.application'
android
compileSdkVersion 17
buildToolsVersion '27.0.3'
defaultConfig
applicationId "com.yourcompany.yourprojectname"
minSdkVersion 14
targetSdkVersion 16
compileOptions
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
buildTypes
release
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
dependencies
implementation 'com.google.code.gson:gson:2.3.1'
implementation files('libs/apache-httpcomponents-httpmime.jar')
implementation files('libs/FlurryAnalytics-5.6.0.jar')
implementation files('libs/java-json.jar')
implementation files('libs/jsoup-1.8.1.jar')
implementation files('libs/jxl-2.6.3.jar')
implementation files('libs/ksoap2-android-assembly-2.4-jar-with-dependencies.jar')
implementation files('libs/picasso-2.5.2.jar')
implementation files('libs/ViewHelperLib.jar')
我正在低于异常 我认为这主要是由于库和 gradle 中代码的其他一些调整会做到这一点。
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:processDebugManifest'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:100)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70)
at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:62)
at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:60)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:97)
at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:87)
at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:248)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
at
编辑:
清单文件
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.company.appname"
android:installLocation="preferExternal"
android:versionCode="24"
android:versionName="5.1.7" ><!-- live on store 18th apr 18 -->
<!-- android:targetSdkVersion="22" -->
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="16"
/>
<uses-permission android:name="com.company.googlemaps.permission.MAPS_RECEIVE" />
<permission
android:name="com.company.googlemaps.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
【问题讨论】:
你能发布你的清单文件吗 你能告诉我你的eclipse项目是如何移动到android studio的吗?并告诉我 android studio 版本。 你可以尝试使用gradle而不是.jar
。你的许多图书馆都可以找到 gradle。从净。而且它也更好用。一切顺利:)
@vm345 : 请检查 Manifest 文件的编辑
@Yatin 在你的清单文件中有很多重复的权限。可能是这个原因
【参考方案1】:
将applicationId "app id"
更改为applicationId "com.yourcompany.yourprojectname"
applicationId 将覆盖清单中定义的 packageName。而且,名字不能有空格。
【讨论】:
我知道这只是为了保护身份以上是关于将代码从 Eclipse 移植到 Android Studio 时出错的主要内容,如果未能解决你的问题,请参考以下文章
C++ - 将 C++ 代码从 Visual Studio 移植到 Linux Eclipse IDE 时出现问题
将 Android 应用程序从 Android Studio 移植到 Microsoft Visual Studio