我正在尝试在Android上移植Apache Flink。这是我的build.gradle
文件:
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "hk.ust.symlab.mobiflink"
minSdkVersion 23
targetSdkVersion 23
versionCode 1
versionName "1.0"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
packagingOptions {
exclude 'META-INF/maven/org.apache.flink/force-shading/pom.xml'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/maven/org.apache.flink/force-shading/pom.properties'
exclude 'META-INF/ASL2.0'
exclude 'META-INF/maven/com.google.guava/guava/pom.xml'
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/LICENSE'
exclude 'META-INF/maven/com.google.guava/guava/pom.properties'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE.txt'
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:3.8.1'
compile 'com.android.support:appcompat-v7:23.2.1'
compile 'com.android.support:design:23.2.1'
compile 'com.android.support:multidex:1.0.1'
compile 'org.apache.flink:flink-java:1.0.0-hadoop1'
compile 'org.apache.flink:flink-clients:0.10.2-hadoop1'
}
奇怪的是,如果我不包含compile 'org.apache.flink:flink-clients:0.10.2-hadoop1'
,那么项目编译并运行没有错误,否则我有这个错误:
com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/usr/lib/jvm/java-7-openjdk-amd64/bin/java'' finished with non-zero exit value 1
我已经阅读了很多关于此问题的问题(例如this之一),但正如您所看到的,我已经包含了multiDexEnabled
选项(当我包含{{}时,这已经是必需的1}})
答案 0 :(得分:0)
尝试将它添加到android部分的build.gradle中
class SidePanelViewController : BackgroundViewController {
var delegate: SidePanelViewControllerDelegate?
@IBOutlet weak var profileImageView: UIImageView!
@IBOutlet weak var nameLabel: UILabel!
@IBOutlet weak var name2Label: UILabel!
@IBOutlet weak var menuTableView: UITableView!
let adapter = SidePanelTableAdapter()
override func viewDidLoad() {
super.viewDidLoad()
profileImageView.sd_setImageWithURL(NSURL(string: Me.read(Me.Key.profileImage) as! String))
nameLabel.text = Me.read(Me.Key.displayName) as? String
name2Label.text = Me.read(Me.Key.displayName2) as? String
adapter.tableView = menuTableView
menuTableView.delegate = adapter
menuTableView.dataSource = adapter
menuTableView.reloadData()
}
}
然后添加类似下面的应用程序类
dexOptions {
incremental = true;
preDexLibraries = false
javaMaxHeapSize "4g" // 2g should be also OK
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
然后在清单中提及您的应用程序类
public class MyApplication extends MultiDexApplication {
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(base);
}